python创建类和类方法

创建一个类的三种方法: 

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

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

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值