自学Python--面向对象之静态方法和类方法

静态方法:staticmethod,不需要实例化的方法,

class Login(object):

    @staticmethod
    def login(username, password):
        print(username, password)


Login.login('test','123456') # test 123456

 

类方法:classmethod 类中方法只涉及修改静态属性

class Goods(object):

    __discount = 0.9

    def __init__(self, name, price):
        super(Goods, self).__init__()
        self.name = name
        self.__price = price

    @property
    def price(self):
        return self.__price * self.__discount

    @classmethod
    def change_discount(cls, new_discount):
        cls.__discount = new_discount

apple = Goods('apple', 6)
print(apple.price) # 5.4
Goods.change_discount(1)
print(apple.price) # 6

 

总结:需要实例化,就普通方法;不需要类实例化,但是会用到类,就用类方法;如果跟类完全没关系,就用静态方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值