2022年 11月 4日

python创建类和类方法

创建一个类的三种方法: 

  1. class Annimao():
  2. pass
  3. class Annimao(object):
  4. pass
  5. class Annimao:
  6. pass

三种类方法:

1、实例方法

  1. class Person:
  2. def __init__(self,age,name):
  3. self.age = age
  4. self.name = name
  5. def speak(self):
  6. print('说了一段话')
  7. if __name__ == '__main__':
  8. per = Person(24,'huitao')
  9. Person.speak()
  10. per.speak()
Person.speak()不允许类名字调用实例方法
  1. F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
  2. Traceback (most recent call last):
  3. File "F:\开发工具\pythonProject\flaskTest\tessss.py", line 79, in <module>
  4. Person.speak()
  5. TypeError: speak() missing 1 required positional argument: 'self'
  6. Process finished with exit code 1

 去掉Person.speak()

结果:

  1. F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
  2. 说了一段话
  3. Process finished with exit code 0

2、类方法

  1. class Employer(object):
  2. def __init__(self):
  3. pass
  4. @classmethod
  5. def speak(cls):
  6. print('不允许讲话')
  7. if __name__ == '__main__':
  8. em = Employer()
  9. em.speak()
  10. Employer.speak()

结果:输出了同样的内容

  1. F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
  2. 不允许讲话
  3. 不允许讲话
  4. Process finished with exit code 0

3、静态方法

  1. class Gun():
  2. def __init__(self):
  3. pass
  4. @staticmethod
  5. def speak():
  6. print('又开始说话了')
  7. if __name__ == '__main__':
  8. g = Gun()
  9. Gun.speak()
  10. g.speak()

结果:输出同样内容

  1. F:\开发工具\pythonProject\flaskTest\venv\Scripts\python.exe F:/开发工具/pythonProject/flaskTest/tessss.py
  2. 又开始说话了
  3. 又开始说话了
  4. Process finished with exit code 0

注释:不推荐使用类方法和静态方法,建议使用实例方法