详解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 splitlines使用技巧
Sep 06 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
python中的字典使用分享
Jul 31 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
python同步两个文件夹下的内容
Aug 29 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
用python绘制樱花树
Oct 09 Python
python基于opencv批量生成验证码的示例
Apr 28 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
在PHP中执行系统外部命令
2006/10/09 PHP
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
PHP错误机制知识汇总
2016/03/24 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
JS实现拼图游戏
2021/01/29 Javascript
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
Python实现二分法算法实例
2015/02/02 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python简单读取json文件功能示例
2017/11/30 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python编程中类与类的关系详解
2019/08/08 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
Python插入Elasticsearch操作方法解析
2020/01/19 Python
Python爬虫之Selenium库的使用方法
2021/01/03 Python
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
捐助倡议书范文
2014/04/15 职场文书
人事任命书范文
2014/06/04 职场文书
查摆问题整改措施
2014/10/24 职场文书
大学生操行评语大全
2014/12/31 职场文书
协议书范文
2015/01/27 职场文书
员工年度工作总结2015
2015/05/18 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
90后经典动画片排行:《数码宝贝》第二,《小鲤鱼历险记》在榜
2022/03/18 日漫
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python