详解Python中类的定义与使用


Posted in Python onApril 11, 2017

类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。

目标:

1.类的定义

2.父类,子类定义,以及子类调用父类

3.类的组合使用

4.内置功能

1.类的定义

代码如下:

#!/usr/bin/env python
#coding:utf8


class Hotel(object):
  """docstring for Hotel"""
  def __init__(self, room, cf=1.0, br=15):
    self.room = room
    self.cf = cf
    self.br = br

  def cacl_all(self, days=1):
    return (self.room * self.cf + self.br) * days

if __name__ == '__main__':
  stdroom = Hotel(200)
  big_room = Hotel(230, 0.9)
  print stdroom.cacl_all()
  print stdroom.cacl_all(2)
  print big_room.cacl_all()
  print big_room.cacl_all(3)

2.父类、子类以及调用父类

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 父类
class AddBook(object):
  def __init__(self, name, phone):
    self.name = name
    self.phone = phone

  def get_phone(self):
    return self.phone

# 子类,继承
class EmplEmail(AddBook):
  def __init__(self, nm, ph, email):
    # AddBook.__init__(self, nm, ph) # 调用父类方法一
    super(EmplEmail, self).__init__(nm, ph) # 调用父类方法二
    self.email = email

  def get_email(self):
    return self.email

# 调用
if __name__ == "__main__":
  Detian = AddBook('handetian', '18210413001')
  Meng = AddBook('shaomeng', '18210413002')

  print Detian.get_phone()
  print AddBook.get_phone(Meng)

  alice = EmplEmail('alice', '18210418888', 'alice@xkops.com')
  print alice.get_email(), alice.get_phone()

3.类的组合使用

代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
1.class类的组合使用
2.手机、邮箱、QQ等是可以变化的(定义在一起),姓名不可变(单独定义)。
3.在另一个类中引用
'''

class Info(object):
  def __init__(self, phone, email, qq):
    self.phone = phone
    self.email = email
    self.qq = qq

  def get_phone(self):
    return self.phone

  def update_phone(self, newphone):
    self.phone = newphone
    print "手机号更改已更改"

  def get_email(self):
    return self.email


class AddrBook(object):
  '''docstring for AddBook'''
  def __init__(self, name, phone, email, qq):
    self.name = name
    self.info = Info(phone, email, qq)


if __name__ == "__main__":
  Detian = AddrBook('handetian', '18210413001', 'detian@xkops.com', '123456')
  print Detian.info.get_phone()
  Detian.info.update_phone(18210413002)
  print Detian.info.get_phone()
  print Detian.info.get_email()

4.内置功能(函数()加与不加的区别)

代码如下:

#!/usr/bin/env python
#coding:utf8

class Books(object):
  def __init__(self, title, author):
    self.title = title
    self.author = author

  def __str__(self):
    return self.title

  def __repr__(self):
    return self.title

  def __call__(self):
    print "%s is written by %s" %(self.title, self.author)


if __name__ == '__main__':
  pybook = Books('Core Python', 'Wesley')
  print pybook
  pybook()
#!/usr/bin/env python
#coding:utf8

class Number(object):
  """Custum object
  add/radd -> +; 
  sub/rsub -> -;
  mul/rmul -> *;
  div/rdiv -> /;
  """
  def __init__(self, number):
    self.number = number

  def __add__(self, other):
    return self.number + other    

  def __radd__(self, other):
    return self.number + other

  def __sub__(self, other):
    return self.number - other

  def __rsub__(self, other):
    return other - self.number


  def __gt__(self, other):
    if self.number > other:
      return True
    return False


if __name__ == '__main__':
  num = Number(10)
  print num + 20
  print 30 + num
  print num - 5
  print 11 - num
  print num > 20

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python中的cookielib模拟登录网站
Apr 09 Python
Python中使用Queue和Condition进行线程同步的方法
Jan 19 Python
Python模拟百度自动输入搜索功能的实例
Feb 14 Python
详解Python3中setuptools、Pip安装教程
Jun 18 Python
python识别图像并提取文字的实现方法
Jun 28 Python
Python使用sklearn实现的各种回归算法示例
Jul 04 Python
python实现翻转棋游戏(othello)
Jul 29 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python性能测量工具cProfile使用解析
Sep 26 Python
Python对接支付宝支付自实现功能
Oct 10 Python
基于Python 中函数的 收集参数 机制
Dec 21 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
python获取指定时间差的时间实例详解
Apr 11 #Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 #Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 #Python
一个基于flask的web应用诞生 用户注册功能开发(5)
Apr 11 #Python
一个基于flask的web应用诞生 flask和mysql相连(4)
Apr 11 #Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 #Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 #Python
You might like
php递归列出所有文件和目录的代码
2008/09/10 PHP
phpize的深入理解
2013/06/03 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
JS 的应用开发初探(mootools)
2009/12/19 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
基于 Bootstrap Datetimepicker 联动
2017/08/03 Javascript
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
微信小程序实现日历小功能
2020/11/18 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
python动态加载包的方法小结
2016/04/18 Python
通过源码分析Python中的切片赋值
2017/05/08 Python
python绘制简单折线图代码示例
2017/12/19 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
解决python写入带有中文的字符到文件错误的问题
2019/01/31 Python
python实现单机五子棋
2020/08/28 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
物业保安主管岗位职责
2013/12/25 职场文书
《尊严》教学反思
2014/02/11 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
企业授权委托书范本
2014/09/22 职场文书
中国文明网向国旗敬礼寄语大全
2014/09/27 职场文书
委托公证书格式
2015/01/26 职场文书
员工离职证明范本
2015/06/12 职场文书
大学班干部竞选稿
2015/11/20 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
浅谈Redis的几个过期策略
2021/05/27 Redis