详解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中base64加密解密方法实例分析
May 16 Python
Django卸载之后重新安装的方法
Mar 15 Python
Python复数属性和方法运算操作示例
Jul 21 Python
python3.4.3下逐行读入txt文本并去重的方法
Apr 29 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
python读取大文件越来越慢的原因与解决
Aug 08 Python
Python使用uuid库生成唯一标识ID
Feb 12 Python
linux 下selenium chrome使用详解
Apr 02 Python
Python实现加密接口测试方法步骤详解
Jun 05 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 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中关于普通表单多文件上传的处理方法
2011/03/25 PHP
PHP 第二节 数据类型之字符串类型
2012/04/28 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
phpcms的分类名称和类别名称的调用
2017/01/05 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
浅析js预加载/延迟加载
2014/09/25 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
Javascript中常用的检测方法小结
2016/10/08 Javascript
基于jquery日历价格、库存等设置插件
2020/07/05 jQuery
JS解析url查询参数的简单代码
2017/08/06 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
Python 从相对路径下import的方法
2018/12/04 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
Python标准库itertools的使用方法
2020/01/17 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
2020/11/24 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
艺术用品:Arteza
2018/11/25 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
初三班主任寄语大全
2014/04/04 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
校园绿化美化方案
2014/06/08 职场文书
2014年检验员工作总结
2014/11/19 职场文书
推广普通话主题班会
2015/08/17 职场文书