详解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中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
python3模块smtplib实现发送邮件功能
May 22 Python
python学生信息管理系统(初级版)
Oct 17 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
python可视化实现代码
Jan 15 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
Aug 07 Python
python如何利用Mitmproxy抓包
Oct 10 Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 Python
基于python的matplotlib制作双Y轴图
Apr 20 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 echo 输出字符串函数详解
2010/05/13 PHP
win7+apache+php+mysql环境配置操作详解
2013/06/10 PHP
smarty模板引擎中变量及变量修饰器用法实例
2015/01/22 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
2015/08/27 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
python写日志封装类实例
2015/06/28 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
python语言中with as的用法使用详解
2018/02/23 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
ansible动态Inventory主机清单配置遇到的坑
2020/01/19 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
学生社团文化节开幕式主持词
2014/03/28 职场文书
暑期教师培训方案
2014/06/07 职场文书
2014年督导工作总结
2014/11/19 职场文书
护士岗位竞聘书
2015/09/15 职场文书
运动会主持人开幕词
2016/03/04 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
MySQL命令行操作时的编码问题详解
2021/04/14 MySQL
Java基础之this关键字的使用
2021/06/30 Java/Android
Python中字符串对象语法分享
2022/02/24 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技