创建一个类的三种方法:
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:开发工具pythonProjectflaskTestvenvscriptspython.exe F:/开发工具/pythonProject/flaskTest/tessss.py Traceback (most recent call last): File "F:开发工具pythonProjectflaskTesttessss.py", line 79, inPerson.speak() TypeError: speak() missing 1 required positional argument: 'self' Process finished with exit code 1
去掉Person.speak()
结果:
F:开发工具pythonProjectflaskTestvenvscriptspython.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:开发工具pythonProjectflaskTestvenvscriptspython.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:开发工具pythonProjectflaskTestvenvscriptspython.exe F:/开发工具/pythonProject/flaskTest/tessss.py 又开始说话了 又开始说话了 Process finished with exit code 0
注释:不推荐使用类方法和静态方法,建议使用实例方法



