1. 对象方法:
- a. 怎么声明:直接声明在类中
- b. 特点:自带self参数,调用的时候不用传参,谁调用指向谁
- c. 怎么调用:对象.方法()
2. 类方法:
- a. 怎么声明:声明函数前就加@classmethod
- b. 特点:自带默认参数cls,调用的不用传参,系统会自动调用当前函数的类传给它(cls是谁调用就指向谁)
- c. 怎么调用: 通过类来调用,类.方法(),类方法就是用类调用,类能做的事情,cls都能做,比如创建对象
3. 静态方法
- a. 怎么声明:声明函数前加@staticmethod
- b. 特点:没有默认参数
- c. 怎么调用:通过类来调用,类.func()
4. 在类中怎么选择使用哪种方法:
- 如果实现类中的函数的功能需要使用对象的属性,那么这个函数就要声明成对象方法
- 实现函数的功能不需要对象的属性的前提下,如果需要类的字段,就声明成类方法
- 若既不需要对象属性,又不需要类的字段,就声明成静态方法
def main():
class Ql_Person: #
num = 61
def __init__(self, x):
self.name = x
@classmethod
def func2(cls): #
print('我是类方法2')
@classmethod
def func1(cls):
print(cls)
print('我是类方法1')
cls.num = 100
@ staticmethod
def func3():
print('我是静态方法')
def func4(self):
print(self.name)
print(Ql_Person.num)
Ql_Person.func1()
Ql_Person.func3()
if __name__ == '__main__':
main()
网友评论