一、classmethod介绍
介绍:@classmethod修饰符我们从名称就可以知道,这是一个类方法,那么和普通的类中的方法有什么不同的
a、类方法,是由类本身调用的,无需实例化类,直接用类本身调用即可,但是要注意实例对象也可以调用类方法
b、类方法,无需要要一个self参数,这个self参数表示类的实例对象,但是他需要一个cls参数,这个参数表示类本身
c、类方法,可以调用类的属性,类的方法,类的实例对象
下面我们正常进入介绍classmethod这个修饰符
1、类方法可以由类调用,也可以由实例对象调用
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 返回函数的静态方法。
该方法不强制要求传递参数,如下声明一个静态方法:
class C(object): @staticmethod def f(arg1, arg2, ...): ...
以上实例声明了静态方法 f,从而可以实现实例化使用 C().f(),当然也可以不实例化调用该方法 C.f()。
函数语法
staticmethod(function)
一.定义
装饰器@property
可以把方法变成属性使用
作用: 控制类内成员的获取 设置 删除
获取 @property
设置 @自定义名.setter
删除 @自定义名.deleter
二.具体实现
1.方法一
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)
原文地址:https://www.cnblogs.com/fan-1994716/p/11634548.html