码迷,mamicode.com
首页 > 编程语言 > 详细

Python面向对象编程(二)

时间:2016-08-09 00:08:43      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

第17,18个:面向对象三大特性之多态
    

1 def func(arg):
2     print(arg)
3 
4 #python支持多种形态(类型)
5 #优点:不需要先声明是什么字符,数字类型
6 #缺点:看查源码的时候不知道是什么类型
7 func(1)
8 func("hk")
9 func([11,22,33,44])


第19,20,21个:类成员之静态字段和普通字段
    

 1 class foo:
 2     #字段(静态字段)属于类
 3     cc =  123
 4     def __init__(self):
 5         #字段(普通字段)属于对象
 6         self.name = la
 7 
 8     def show(self):
 9         print(self.name)
10 
11 obj =  foo()


字段位置及访问规则范例:

 1 class province:
 2     country = "中国"  #静态字段存在类里,在代码加载时已创建
 3     def __init__(self,name):
 4         self.name = name   #普通字段存在于对象里,对象创建后调用时存在于内存中
 5                            #如果country字段存在对象中被反复调用会占用大量的内存资源
 6 #省的属性是中国
 7 hn = province(河南)
 8 hb = province(河北)
 9 sd = province(山东)
10 print(hn.name) #打印河南的名字
11 
12 
13 # 一般情况:自己访问自己的字段,即类访问静态字段、对象访问普通字段
14 #字段访问规则:
15 #   普通字段只能用对象访问
16 #   静态字段用类访问(万不得已才可使用对象访问)
17 print(hn.name)
18 print(province.country)
19 #print(hn.country)


第22,23个:类成员之普通方法和静态方法以及类
    
方法:
    所有的方法属于类
    1、普通方法:至少一个self,对象执行
    2、静态方法:任意参数, 类执行(万不得已才可使用对象访问)
    3、类方法:至少有一个cls,类执行(万不得已才可使用对象访问)
    

 1 class province:
 2     country = "中国"
 3     def __init__(self,name):
 4         self.name = name
 5 
 6     #普通方法,由对象去调用执行(方法属于类)
 7     def show(self):
 8         print(self.name)
 9         return True
10 
11     #静态方法属于类,由类来调用执行。可以没有参数也可以有多个参数
12     @staticmethod
13     def f1(arg1,arg2):
14         print(arg1,arg2)
15 
16     #类方法由类来调用,是静态方法的一种特殊形式,至少有一个参数cls
17     @classmethod
18     def f2(cls):
19         print(cls)
20 
21 hn = province(河南) #创建对象
22 print(hn.show())   #对象调用普通方法
23 
24 province.f1(12,34) #类调用静态方法
25 province.f2() #类调用类方法,打印出类的名称


第24,25,26个:类成员之属性
    
    




Python面向对象编程(二)

标签:

原文地址:http://www.cnblogs.com/hanxiaobei/p/5751414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!