创建一个类的三种方法:
- 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
注释:不推荐使用类方法和静态方法,建议使用实例方法