详解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之开始真正编程
Sep 12 Python
python自定义类并使用的方法
May 07 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python实现的矩阵转置与矩阵相乘运算示例
Mar 26 Python
python随机生成库faker库api实例详解
Nov 28 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
Python实现实时数据采集新型冠状病毒数据实例
Feb 04 Python
python报错: 'list' object has no attribute 'shape'的解决
Jul 15 Python
Python日志器使用方法及原理解析
Sep 27 Python
Jupyter Notebook 安装配置与使用详解
Jan 06 Python
使用python实现学生信息管理系统
Feb 25 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
基于php-fpm的配置详解
2013/06/03 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
php数组去除空值函数分享
2015/02/02 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
nodejs结合socket.io实现websocket通信功能的方法
2018/01/12 NodeJs
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
JSON的parse()方法介绍
2019/01/31 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python3让print输出不换行的方法
2020/08/24 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
七年级音乐教学反思
2014/01/26 职场文书
办公室岗位职责
2014/02/12 职场文书
预备党员承诺书
2014/03/25 职场文书
班主任对学生的评语
2014/04/26 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
入党推优材料
2014/06/02 职场文书
医学生求职信
2014/07/01 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
2016年公司新年寄语
2015/08/17 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
Java 深入探究讲解简单工厂模式
2022/04/07 Java/Android