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

一文带你了解什么是

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

01 对象的属性

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

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

代码语言:javascript复制

# 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这个帅哥实例需要用到这两个属性,那如何调用呢?具体代码如下

代码语言:javascript复制# 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: 部分释义来源于网络检索整理,如有侵权请联系删除

相关推荐

苹果笔记本13寸、15寸具体尺寸是几厘米乘几厘米啊 , 苹果笔记本电脑尺寸对照表
如何一鍵更改Snapchat定位
哪个版本的广联达算量软件好用?
5个方法教你如何使用苹果手机截取长图!
战地6多人模式详解:组队人数与对战规模分析
华为智慧屏无线投屏时,出现卡顿、延迟高、花屏现象
攒签行动,超特相随! 《街头篮球》全新版本FS角色大猜想
三步舞曲大全100首四步(三步舞曲大合集:100首四步舞曲的完整列表)
双元宝起针多少针

双元宝起针多少针

10-17 👁️ 4290