类顾名思义,就是一类事物、或者叫做实例,它用来描述具有共同特征的一类事物。我们在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