类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在python中声明类的关键词是class,类还有功能和属性,属性就是这类事物的特征,而功能就是它能做什么,也是就是方法或者函数。我们仍然用例子来说明问题。

目标:

1.类的定义

2.父类,子类定义,以及子类调用父类

3.类的组合使用

4.内置功能

1.类的定义

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#!/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.父类、子类以及调用父类

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

#!/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.类的组合使用

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#!/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.内置功能(函数()加与不加的区别)

代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

#!/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()

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

#!/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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://www.cnblogs.com/chenxiaoyong/p/6279874.html

python中完整类的定义_详解Python中类的定义与使用相关推荐

  1. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

  2. python中list[1啥意思_详解Python中list[::-1]的几种用法

    本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下: s = "abcde" list的[]中有三个参数,用冒号分割 list[param1:para ...

  3. python中yaml模块的使用_详解Python yaml模块

    一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...

  4. python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...

    详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3) 上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程. 首先我们回顾一下要挖掘的特征项及样本空间: ...

  5. python中filepath路径怎么写_详解Python中的路径问题

    1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.pa ...

  6. python中的符号下划线_详解Python中下划线的使用方法

    编程派微信号:codingpy 这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线 _ 的不同用法绝大部分(不全是)都是一种惯例约定. 单个下划线(_) 主要有三种情况: ...

  7. python中换行的转义符_详解Python中的各种转义符\n\r\t

    Python中的各种转义符\n\r\t 转义符 描述 \ 续行符(在行尾时) \\ 反斜杠符号 ' 单引号 " 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 ...

  8. python中怎么做分组问题_详解Python中的分组函数groupby和itertools)

    具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools impor ...

  9. python中for循环怎么打开_详解Python中for循环的使用

    for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程" 一文讨论了 if 语句和 while 循环,讨论了复合语句以及适当缩进 Python 语句来 ...

最新文章

  1. C/C++动态二维数组的内存分配和释放
  2. angular 前端路由不生效解决方案
  3. 干货 | 机器学习正在面临哪些主要挑战?
  4. JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
  5. 在ABAP XSLT中调用ABAP类的方法
  6. 【活动】HoloLens 黑科技等你来探秘
  7. mongodb json_在MongoDB和Spring Batch中将XML转换为JSON和原始使用
  8. html木桶布局,木桶布局 实现
  9. 设置让终端保持utf8 cmd的设置
  10. JAVA中日期格式SimpleDateFormat
  11. python错误和调试
  12. 修辞结构理论论文集合
  13. java 调用c 的dll,java如何调用C的dll
  14. node.js连接数据库(mysql)
  15. 炒菜机器人煎鸡蛋视频_还在用油炒鸡蛋?赶紧试试用“它”炒,鸡蛋滑嫩还不粘锅!大厨轻易不透露...
  16. new delete 之placement new 和placement delete
  17. 操作系统课程设计 模拟磁盘文件系统实现
  18. 哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端)第一套笔试题
  19. 联合分布概率密度函数
  20. 卡通飞翔的牛动画特效

热门文章

  1. python 2.7安装某些包出现错误:libxml/xmlversion.h:没有那个文件或目录
  2. [转] 多线程 《深入浅出 Java Concurrency》目录
  3. Android-LayoutInflater
  4. Javascript--位运算符
  5. 手持设备点击响应速度,鼠标事件与touch事件的那些事
  6. sql设置自增字段的标识行
  7. 如何自定义一个datatable
  8. 使用Apriori算法和FP-growth算法进行关联分析
  9. BugkuCTF web5
  10. PHP 判断客户端请求是 Android 还是 IOS