创建一个类的三种方法:
class Annimao():
pass
class Annimao(object):
pass
class Annimao:
pass
三种类方法:
1、实例方法
class Person:
def __init__(self,age,name):
self.age = age
self.name = name
def speak(self):
print('说了一段话')
if __name__ == '__main__':
per = Person(24,'huitao')
Person.speak()
per.speak()
Person.speak()不允许类名字调用实例方法
F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
Traceback (most recent call last):
File "F:\开发工具\pythonProject\flaskTest\tessss.py", line 79, in <module>
Person.speak()
TypeError: speak() missing 1 required positional argument: 'self'
Process finished with exit code 1
去掉Person.speak()
结果:
F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
说了一段话
Process finished with exit code 0
2、类方法
class Employer(object):
def __init__(self):
pass
@classmethod
def speak(cls):
print('不允许讲话')
if __name__ == '__main__':
em = Employer()
em.speak()
Employer.speak()
结果:输出了同样的内容
F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
不允许讲话
不允许讲话
Process finished with exit code 0
3、静态方法
class Gun():
def __init__(self):
pass
@staticmethod
def speak():
print('又开始说话了')
if __name__ == '__main__':
g = Gun()
Gun.speak()
g.speak()
结果:输出同样内容
F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
又开始说话了
又开始说话了
Process finished with exit code 0
注释:不推荐使用类方法和静态方法,建议使用实例方法