介绍:@classmethod修饰符咱们从名称就能够知道,这是一个类方法,那么和普通的类中的方法有什么不一样的html
a、类方法,是由类自己调用的,无需实例化类,直接用类自己调用便可,可是要注意实例对象也能够调用类方法python
b、类方法,无须要要一个self参数,这个self参数表示类的实例对象,可是他须要一个cls参数,这个参数表示类自己函数
c、类方法,能够调用类的属性,类的方法,类的实例对象spa
下面咱们正常进入介绍classmethod这个修饰符htm
一、类方法能够由类调用,也能够由实例对象调用对象
class Test:
# n=1
# def func1(self):
# print('你好')
# @classmethod
# def func2(cls):
# cls.func1(object)
# cls.func3()
# return cls.n
# @classmethod
# def func3(cls):
# print('大帅哥')
# a=Test.func2()
# b=Test()
# # b.func2()
# # print(b.func2())
# print(a)
运行结果:
你好
大帅哥
1
python staticmethod 返回函数的静态方法。blog
该方法不强制要求传递参数,以下声明一个静态方法:get
class C(object): @staticmethod def f(arg1, arg2, ...): ...
以上实例声明了静态方法 f,从而能够实现实例化使用 C().f(),固然也能够不实例化调用该方法 C.f()。it
staticmethod(function)
装饰器@property
能够把方法变成属性使用
做用: 控制类内成员的获取 设置 删除
获取 @property
设置 @自定义名.setter
删除 @自定义名.deleterio
class MyClass():
def __init__(self,name):
self.name = name
#获取
@property
def username(self):
return self.name
#设置
@username.setter
def username(self,val):
self.name = val
#删除
@username.deleter
def username(self):
del self.name
obj = MyClass("ONE")
# 获取
print(obj.username)
# 设置
obj.username = "two"
print(obj.username)
# 删除 del 调用删除相关的方法del obj.username# print(obj.username)