知识回顾:
上一节中,我们深化学习了类的属性监控,主要使用了三个魔法方法:
与此同时在书写属性设置监控的时候,千万不要忘记写__dict__方法属性。
本节知识视频教程
以下开始文字讲解:
一、类的属性监控的作业
案例:使得类的某个属性值大于10
思路:
1.设置一个类
2.定义一个__setattr__方法,用来监控属性
3.类的实例化,设置类的属性
4.通过查看类的属性的值,来看属性监控是否成功
二、类的静态方法
在类中的方法名称前加一个头标记@staticmethod。
静态方法往往用于一些自定义的类来实现一些通用的功能,可以方便我们调用类的方法。
类的静态方法,不需要self这类参数,因为类的静态方法,不需要进行实例化,就可以进行调用。
三、类的类方法
在类中的方法名称前加一个头标记@classmethod。
类的类方法的调用也不需要进行实例化。
类的类方法是在python中对类的构造方法的一个补充。
四、静态方法的定义和调用方式
定义:
@staticmethod
def 类的方法名称:
方法主体
举例
@staticmethod
def say():
print("我们是静态方法,我不需要实例化,就可以被调用")
调用:
类的名称.方法名称()
Person.say()
类方法类似于静态方法
定义:
@classmethod
def setName(cls):
name="test类方法"
print(name)
调用:
Person.setName()
类的静态方法和类方法的区别主要是在方法定义的时候的头标记不同。但在定义类方法的时候需要一个类的本身的参数。
五、总结强调
1.掌握类的静态方法
2.掌握类的类方法
3.理解静态方法与类方法的区别
4.掌握属性监控的魔法方法书写的方式,不能漏掉类内部存储的__dict__字典存储。
源代码【作业代码】:
class Person:
def __init__(self):
self.age=0
def __setattr__(self, key, value):
if(key=="nianling"):
if(value>10):
self.age=value
else:
print("年龄不符合条件")
else:
self.__dict__[key]=value
def __getattr__(self, item):
if(item=="nianling"):
return self.age
p=Person()
# print(p)
p.nianling=6
print(p.nianling)
本节知识源代码:
#类的静态方法
class Person:
name=""
def __init__(self):
self.age=""
@staticmethod
def say():
print("我们是静态方法,我不需要实例化,就可以被调用")
@staticmethod
def sayHello(n):
name=n
print(name+"您好")
@classmethod
def setName(cls):
name="test类方法"
print(name)
Person.say()
Person.setName()
Person.sayHello("老刘")
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有