一文带你了解什么是 " 对象的属性 "

继续上篇 形象生动的解释什么是Python的类与对象  今天在给大家分享一下什么是"对象的属性" 

01 对象的属性

帅哥这一类人除了共有的行为之外,还有其他一些共有属性,例如身高、体重等,一般帅哥身高都在180cm以上,体重是70kg左右

如果要把帅哥这一类人所共有的属性也加入到刚刚新建的Shuaige这个类中,那么Python代码又如何表达呢?具体代码如下



# coding=utf-8# authou:shichao

class shuaige:    def __init__(self, a, b):        self.height = a        self.weighe = b

    def changge(self):        print("我会跳舞")

    def tiaowu(self):        print("我会跳舞")



zhangsan = shuaige(180,70)

1.代码分析

a. 第02行代码,def关键字用来定义一个方法,这里定义了一个__init__方法,注意init前后都有两个下划线,一共是4个下划线,__init__的方法是一个特殊的方法

这个方法的作用是给zhangsan这个帅哥(实例)的属性赋予初始值,也就是说帅哥共有属性被封装在__init__的方法里了。

b. 第02行代码,__init__方法的括号里有3个参数,分别是self、a、b,而self这个参数代表的是zhangsan这个帅哥。

对初学者来说,可以这样理解,在类的外面,用zhangsan来代表刚“出炉”的帅哥,在类的内部,就用self代表这个帅哥,也就是说zhangsan和self指向的是同一个人(实例),只是取了两个不同的名字。

c. 第03行代码和第04行代码,既然zhangsan和self指向的是同一个人,那么self.height=a等同于zhangsan.height=a,那么a具体等于多少就要从类的外部的zhangsan这个帅哥传递进来。

self.weight=b也是同样的道理。

d. 第09行代码,前面说过Shuaige()会“出炉”一个帅哥,而Shuaige(180,70)里带有两个实际的数字,那么这两个实际的参数就会传递给__init__(self,a,b)方法中的参数a和参数b,

同时在创建zhangsan这个帅哥对象时,除了会传递180和70这两个参数给a和b外,Python还会把zhangsan这个帅哥自己也传递给__init__方法中的参数self,这也是为什么说self代表的也是zhangsan这个帅哥实例。

e. zhangsan这个帅哥(实例)通过__init__的方法把自己拥有的属性封装在了一个叫Shuaige类的内部,那么在类的外部,zhangsan这个帅哥就可以在需要的时候去调用它。

f. self作为一个标识,不管是类中的属性,还是类中的方法,只要它后面跟了self这个参数,就说明这个属性和方法是属于帅哥实例的,因为它们指向了同一个人。

02. 对象调用自己的属性

zhangsan这个帅哥实例已把自己的属性封装在Shuaige这个类里面了,现在zhangsan这个帅哥实例需要用到这两个属性,那如何调用呢?具体代码如下

# coding=utf-8# authou:shichao

class shuaige:    def __init__(self, a, b):        self.height = a        self.weighe = b

    def changge(self):        print("我会跳舞")

    def tiaowu(self):        print("我会跳舞")



zhangsan = shuaige(180,70)print(zhangsan.height)print(zhangsan.weighe)

1. 代码分析

a. 第10行和第11行代码,帅哥这个实例调用类中已封装好的属性很简单:对象名加“。”再加属性名即可。


那么zhangsan.height意思是zhangsan这个帅哥实例要调用自己的“身高”属性,如果要打印出属性的属性值则需要加上print(),zhangsan.weight的操作也如此。

2. 注意事项

a. 既然self代表的是zhangsan这个实例,那么在类的外部,可不可以使用self去调用自己的属性,即以上代码最后一行换成print(self.weight),

这是不行的,虽然self也指向了zhangsan这个帅哥(实例),但它只能在类的内部使用。

b. init____()方法里面有3个参数,这3个参数要用逗号隔开,同时新建实例时,zhangsan = Shuaige(180,70)类名里面的2个实参同样要用逗号隔开

PS: 部分释义来源于网络检索整理,如有侵权请联系删除

加小编微信加测试开发群

查看更多精彩文章,请订阅以下公众号

推荐阅读

形象生动的解释什么是Python的类与对象

职场事情早知道!

金三银四跳槽季,该怎么跟 HR 谈薪资?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值