二十三、面向对象4—类属性、实例属性、类方法、实例方法、静态方法

一、类属性

1、类的属性有两种用法:一种是实例的名.类属性名,另外一种是类的名字.类属性名

2、目前为止我们所学过的,只要是私有的,只能在类的里面使用,不能在类的外面去使用,也不能被继承下来,也就是说不能在子类中使用私有的。

二、实例属性

1、实例属性不是必须在类中显示定义的,然后才可以使用的。

在类外对类对象people进行实例化之后,产生了一个实例对象p,然后p.age = 12这句给p添加了一个实例属性age,赋值为12。这个实例属性是实例对象p所特有的,注意,类对象people并不拥有它(所以不能通过类对象来访问这个age属性)。当然还可以在实例化对象的时候给age赋值。

三、总结必看

1、类属性

2、实例属性

四、实例方法、类方法

(1)类方法

1、是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数

2、我们知道self保存的是这个实例对象:那cls保存的是这个类也就是class的简写

1、可以通过类的名字调用类方法,也可以通过这个类创建出来的对象去调用这个类方法。

2、类方法还有一个用途就是可以对类属性进行修改。

3、结果显示在用类方法对类属性修改之后,通过类对象和实例对象访问都发生了改变。

(2)实例方法,就是普通的方法

五、静态方法

1、需要通过修饰器@staticmethod来进行修饰,静态方法不需要多定义参数

2、跟类方法与实例的方法区别就是可以没有必须要写的那个self和cls的参数。

六、总结必看

1、从类方法和实例方法以及静态方法的定义形式就可以看出来,类方法的第一个参数是类对象cls,那么通过cls引用的必定是类

     对象的属性和方法;

2、而实例方法的第一个参数是实例对象self,那么通过self引用的可能是类属性、也有可能是实例属性(这个需要具体分析),

     不过在存在相同名称的类属性和实例属性的情况下,实例属性优先级更高

3、静态方法中不需要额外定义参数,因此在静态方法中引用类属性的话,必须通过类对象来引用。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值