python中class中类属性与实例属性以及类方法和静态方法的介绍

python中class中类属性与实例属性以及类方法和静态方法的介绍

属性的介绍:
尽量把需要用户传入的属性作为实例属性,而把同类都一样的属性作为类属性。实例属性在每创造一个类是都会初始化一遍,不同的实例的实例属性可能不同,不同实例的类属性都相同
1:实例属性

在__init__(self,…)中初始化

内部调用时都需要加上self.

外部调用时用“对象名.属性名”调用

2:类属性:
    在__init__()里初始化
    在内部用classname.类属性名调用
    外部既可以用classname.类属性名又可以用instancename.类属性名来调用

方法的介绍
1:普通方法:

def fun_name(self,…):
      pass
    外部用实例调用
2:静态方法:通过装饰器 @staticmethod 装饰
       不能访问实例属性
参数不能传入self
       与类相关但是不依赖类与实例的方法
3:类方法:@classmethod
     不能访问实例属性
参数必须传入cls
     必须传入cls参数(即代表了此类对象-----区别------self代表实例对象),并且用此来调用类属性:cls.类属性名

静态方法与类方法都可以通过类或者实例来调用。其两个的特点都是不能够调用实例属性
静态方法不需要接收参数,使用类名.类属性

代码示例

class d():
    d1= 111  #类属性
    __d3 = 222   #私有属性  (不允许在外部调用)
    def __init__(self,age):
        self.age=age
    def fun1(self): #普通方法
        print(self.__d3)
        print(self.age)
        self.d2 = 222   #实例属性
    @classmethod  #类方法
    def fun2(cls,ss):
        print(cls.d1)
        print(ss)
        print('classmethod')
    @staticmethod #静态方法
    def fun3(data):
        print()
        print('staticmethod')
D = d(333)
#------------------------------------
#实例方法    #实例方法只能被实例化对象调用
D.fun1()
#-----------------------------------------------------
 类方法   能够被类名或者实例化对象调用 (被类名调用,就能实现跳过实例化这一步)
D.fun2('类参数')
d.fun2('类参数')
 类方法和静态方法 的区别: 1,定义;2参数
 #-----------------------------------------------------
 静态方法   能够被类名或者实例化对象调用 (被类名调用,就能实现跳过实例化这一步)
D.fun3(22)
d.fun3(33)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值