python中完整类的定义_详解Python中类的定义与使用
类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在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中类的定义与使用相关推荐
- python中什么是可变参数_详解Python的三种可变参数
详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...
- python中list[1啥意思_详解Python中list[::-1]的几种用法
本文主要介绍了Python中list[::-1]的几种用法,分享给大家,具体如下: s = "abcde" list的[]中有三个参数,用冒号分割 list[param1:para ...
- python中yaml模块的使用_详解Python yaml模块
一.yaml文件介绍 yaml是一个专门用来写配置文件的语言. 1. yaml文件规则 区分大小写: 使用缩进表示层级关系: 使用空格键缩进,而非Tab键缩进 缩进的空格数目不固定,只需要相同层级的元 ...
- python中fp是什么意思_详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3)...
详解python实现FP-TREE进行关联规则挖掘(带有FP树显示功能)附源代码下载(3) 上一节简单讲了下FP树的生成,在这一节我将描述FP树的挖掘过程. 首先我们回顾一下要挖掘的特征项及样本空间: ...
- python中filepath路径怎么写_详解Python中的路径问题
1. 绝对路径引入 Python 在搜索模块时,依次搜索sys.path里的位置,直到找到模块为止.下面命令可以查看当前的搜索路径: import sys print(sys.path) sys.pa ...
- python中的符号下划线_详解Python中下划线的使用方法
编程派微信号:codingpy 这篇文章讨论Python中下划线_的使用.跟Python中很多用法类似,下划线 _ 的不同用法绝大部分(不全是)都是一种惯例约定. 单个下划线(_) 主要有三种情况: ...
- python中换行的转义符_详解Python中的各种转义符\n\r\t
Python中的各种转义符\n\r\t 转义符 描述 \ 续行符(在行尾时) \\ 反斜杠符号 ' 单引号 " 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 ...
- python中怎么做分组问题_详解Python中的分组函数groupby和itertools)
具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools impor ...
- python中for循环怎么打开_详解Python中for循环的使用
for 循环 本系列前面 "探索 Python,第 5 部分:用 Python 编程" 一文讨论了 if 语句和 while 循环,讨论了复合语句以及适当缩进 Python 语句来 ...
最新文章
- C/C++动态二维数组的内存分配和释放
- angular 前端路由不生效解决方案
- 干货 | 机器学习正在面临哪些主要挑战?
- JZOJ 5436. 【NOIP2017提高A组集训10.30】Group
- 在ABAP XSLT中调用ABAP类的方法
- 【活动】HoloLens 黑科技等你来探秘
- mongodb json_在MongoDB和Spring Batch中将XML转换为JSON和原始使用
- html木桶布局,木桶布局 实现
- 设置让终端保持utf8 cmd的设置
- JAVA中日期格式SimpleDateFormat
- python错误和调试
- 修辞结构理论论文集合
- java 调用c 的dll,java如何调用C的dll
- node.js连接数据库(mysql)
- 炒菜机器人煎鸡蛋视频_还在用油炒鸡蛋?赶紧试试用“它”炒,鸡蛋滑嫩还不粘锅!大厨轻易不透露...
- new delete 之placement new 和placement delete
- 操作系统课程设计 模拟磁盘文件系统实现
- 哔哩哔哩2019秋招技术岗(前端、运维、后端、移动端)第一套笔试题
- 联合分布概率密度函数
- 卡通飞翔的牛动画特效