详解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入门及进阶笔记 Python 内置函数小结
Aug 09 Python
Python中的fileinput模块的简单实用示例
Jul 09 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
可能是最全面的 Python 字符串拼接总结【收藏】
Jul 09 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
Python Cookie 读取和保存方法
Dec 28 Python
python中return的返回和执行实例
Dec 24 Python
通过实例学习Python Excel操作
Jan 06 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python实现汇率转换操作
May 03 Python
Pycharm常用快捷键总结及配置方法
Nov 14 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函数(ignore_user_abort)
2012/08/01 PHP
getimagesize获取图片尺寸实例
2014/11/15 PHP
PHP常用处理静态操作类
2015/04/03 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
javascript事件冒泡详解和捕获、阻止方法
2014/04/12 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
node后端服务保活的实现
2019/11/10 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
关于python字符串方法分类详解
2019/08/20 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
趣味游戏活动方案
2014/02/07 职场文书
科研课题实施方案
2014/03/18 职场文书
2014最新实习证明模板
2014/10/02 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
小鞋子观后感
2015/06/05 职场文书
微观世界观后感
2015/06/10 职场文书
海底两万里读书笔记
2015/06/26 职场文书
军训阅兵新闻稿
2015/07/17 职场文书