o1_什么是类对象.

 1 #  Learner BM
 2 
 3 """
 4 python中,所有皆为对象,包括每次定义的类也属于对象,
 5     既然属于对象,也应该有自己的属性和方法,类对象的在内存中只有一份,而实例对象在内存中存在多份
 6     类对象除了封装实例的属性二号方法外,也能够拥有自己的属性和方法
 7     作用,通常为记录类相关的特征,与对象无关的特征
 8         例如,创建一个类属性,记录查看此类到底创建了多少个实例的属性
 9 
10     1,类属性-----记录根类相关的特征
11         类名.属性进行访问
12     2,类方法-----
13         类名.方法名进行访问
14 
15 """
16 """
17 一个完整的类
18 class demo()
19     类属性 赋值语句定义  count = 0   访问方式  类名.count 
20     初始化方法 def _init_           访问方式  实例名.属性
21     实例方法   def fun_boject(self) 访问方式  实例名.方法
22     @classmethod 关键字
23     类方法(cls)  
24 """
25 
26 class  Tool():
27     # 定义类属性
28     count = 0
29     #  定义类方法关键字
30     @classmethod
31     #  类方法的定义,第一个参数为cls类,哪个类调用就是那个类的引用
32     def c_method(cls):
33         #   类方法,内访问类属性.类名.类属性,(类名.类方法名)
34         print('这是类方法输出的类属性%s'% (Tool.count))
35     def __init__(self,name):
36         self.name = name
37         #  修改类属性
38         Tool.count+=1
39 tool1 = Tool('斧头')
40 tool2 = Tool('榔头')
41 #   正确写法,类名.类属性
42 print(Tool.count)
43 #   错误写法 实例名.类属性. python的查找机制,先查找对象的count,找不到查找类的count,在找不到就报错
44 #   若对象的属性和类属性名称相同的情况下,容易产生混淆
45 print(tool2.count)
46 #  类体外访问类方法,类名.类方法名
47 Tool.c_method()
View Code

o2_静态方法.py

 1 #  Learner BM
 2 """
 3 什么是静态方法, 例如 游戏帮助信息,与整个游戏
 4     当一个类中,一个方法既不需要访问类属性,也不需要访问实例属性的时候,可以考虑定义成为静态方法
 5 
 6 静态方法的定义
 7     1,参数不需要self或者cls
 8     2,使用关键字 @staticmethod
 9     def 方法名(  )  #  注意实例方法需要self,类方法需要cls 静态方法不需要指定参数
10         pass
11 静态方法的调用,  与类方法调用方式一致.但是只能在类外进行访问?
12     类名.静态方法名
13 """
14 #  实际操作
15 class Game():
16     # 定义类属性,记录游戏最高分
17     top_score = 0
18     # 定义类方法,显示游戏最高分
19     @classmethod
20     def show_top_score(cls):
21         print('类方法,显示游戏历史最高分%s' % cls.top_score)
22     #  定义静态方法,显示游戏帮助信息
23     @staticmethod
24     def show_help():
25         print('游戏帮助信息,开始游戏输入....')
26     #  定义对象方法,开始游戏
27     def start_game(self):
28         print('游戏开始%s开始玩游戏了' % self.name)
29     #  定义对象初始化方法,初始化游戏玩家
30     def __init__(self,play_name):
31         self.name = play_name
32 #  创建实例
33 
34 xiaoming = Game('小明')
35 
36 # 调用静态方法,显示游戏帮助信息,  类名.静态方法名字
37 Game.show_help()
38 # 调用类方法,显示最高分,类名.类方法名
39 Game.show_top_score()
40 #  调用对象方法,开始游戏   对象名.方法名
41 xiaoming.start_game()
View Code

 

posted on 2020-03-10 15:38  RRRRRRR1  阅读(11)  评论(0)    收藏  举报