classmethod、staticmethod

一、classmethod
class Goods:
    __d = 0.8
    @classmethod   #类方法
    def c_d(cls,new_d):
        cls.__d = new_d   # 把他变成私有变量
    @classmethod
    def get_d(cls):
        return cls.__d
# apple = Goods()       # 不需要实例化
Goods.c_d(0.75)
print(Goods.get_d())          # 0.75
类方法
调用:不需要实例化 直接用类名调用就好
定义:不用接受 self 参数,默认传 cls cls 就代表当前方法所在的类
什么时候用类方法?
需要使用静态变量 且 不需要和对象相关的任何操作的时候
二、staticmethod
静态方法:
如果这个方法 既不需要操作静态变量,也不需要使用对象相关的操作,就使用静态方法
class A:
    @staticmethod
    def func(name):  #静态方法
        print(123)
A.func('alex')           # 123
NA:
面向对象编程:
专门为面向对象编程提供的一个方法—— staticmethod
它完全可以当做普通函数去用,只不过这个函数要通过类名.函数名调用
其他 传参 返回值 完全没有区别
类里面,一共可以定义这三种方法:
普通方法 self
类方法 cls
静态方法
静态方法和类方法:
都是直接可以使用类名调用,也可以对象调用,但是没必要实例化在调用。麻烦。
普通方法:对象调用
AI理解理解
class A:
    @staticmethod
    def func1(name):  #静态方法
        print(123)
    @classmethod
    def func2(cls):  # 静态方法
        print(123)
    def func3(self):pass
a = A()
print(a.func1)  #静态方法
print(a.func2)  #类方法 : # 绑定到A类的func
print(a.func3)  #普通方法:# 绑定到A类对象的func
结果:

孙耀威----爱的故事(上集)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值