1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > Python学习笔记—— 面向对象4.类属性 类方法 静态方法

Python学习笔记—— 面向对象4.类属性 类方法 静态方法

时间:2022-07-22 03:16:02

相关推荐

Python学习笔记—— 面向对象4.类属性 类方法 静态方法

Python学习笔记—— 面向对象4.类属性、类方法、静态方法

文章目录

Python学习笔记—— 面向对象4.类属性、类方法、静态方法一、类属性术语-------实例类是一个特殊的对象类属性的定义和使用二、类方法三、静态方法四、综合实例

一、类属性

术语-------实例

① 使用面向对象开发,第一步是设计类

② 使用类名()创建对象,创建对象的动作有两步:

· 在内存中为对象分配空间

· 调用初始化方法__init__为对象初始化

③ 对象创建后,内存中就有了对象的实实在在的存在----实例

因此,通常也会把:

· 创建出来的对象叫做类的实例

· 创建对象的动作叫做实例化

· 对象的属性叫做实例属性

类是一个特殊的对象

Python 中一切皆对象:

· class AAA: 定义的类属于类对象

· obj1 = AAA()属于实例对象

· 在程序运行时,类同样会被加载到内存

· 在Python中,类是一个特殊的对象 ----类对象

· 在程序运行时,类对象在内存中只有一份,使用一个类在对象中可以创建出多个对象实例

· 除了封装实例的属性和方法外,类对象还可以拥有自己的属性和方法

· 通过类名.的方式可以访问类的属性或者调用类的方法

类属性的定义和使用

· 类属性就是给类对象中定义的属性

· 通常用来记录与这个类相关的特征

· 类属性不会用于记录具体对象的特征

class Tool(object):#使用赋值语句,定义类属性,记录创建工具对象的总数count = 0def __init__(self,name):self.name = name#针对类属性做一个计数+1Tool.count +=1#创建工具对象tool1 = Tool("斧头")tool2 = Tool("榔头")tool3 = Tool("铁楸")print(Tool.count)

3

二、类方法

类方法就是针对类对象定义的方法

· 在类方法内部可以直接访问类属性或者调用其他的类方法

语法如下:

@classmethoddef 类方法名(cls):pass

· 类方法需要用修饰器@classmethod来标识,告诉解释器这是一个类方法

· 类方法的第一个参数应该是cls

→由那一个类调用的方法,方法内的cls就是哪一个类的引用,与self类似

实例:

class Tool(object):#使用赋值语句,定义类属性,记录创建工具对象的总数count = 0def __init__(self,name):self.name = name#针对类属性做一个计数+1Tool.count +=1@classmethoddef show_tool_count(cls):print("工具对象总数 %d"%cls.count)#创建工具对象tool1 = Tool("斧头")tool2 = Tool("榔头")tool3 = Tool("铁楸")Tool.show_tool_count()

工具对象总数 3

三、静态方法

在开发时,如果需要再类中封装一个方法,这个方法:

· 既不需要访问实例属性和实力方法

· 也不需要访问类属性和类方法

这个时候可以把方法封装成一个静态方法

语法如下:

@staticmethoddef 静态方法名():pass

不需要用self作为第一个参数

示例:

class Dog(object):@staticmethoddef run():print("小狗要跑...")Dog.run()

小狗要跑…

四、综合实例

class Game(object):# 历史最高分top_score = 0def __init__(self, player_name):self.player_name = player_name@staticmethoddef show_help():print("帮助信息:让僵尸进入大门")@classmethoddef show_top_score(cls):print("历史最高分是 %d" % cls.top_score)def start_game(self):print("%s 开始游戏啦..." % self.player_name)def score(self, score):print("本次得分为%d"%score)if score >= Game.top_score:Game.top_score = score# 1.查看游戏的帮助信息Game.show_help()# 2.查看历史最高分Game.show_top_score()# 3.创建游戏对象game = Game("小明")game.start_game()game.score(100)game.show_top_score()game.score(50)game.score(150)game.show_top_score()

帮助信息:让僵尸进入大门

历史最高分是 0

小明 开始游戏啦…

本次得分为100

历史最高分是 100

本次得分为50

本次得分为150

历史最高分是 150

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。