Python中属性和属性有什么区别?
在Python中,一切都是对象,每个对象都有属性和方法或函数。属性由数据变量表示,例如姓名、年龄、身高等。
属性 是一种特殊的属性,具有getter、setter和delete方法,如get、set和delete方法。
在Python中,属性装饰器提供了对属性的getter/setter访问。您可以使用property函数定义getter、setter和delete方法。如果您只想阅读属性,还可以在方法上方添加@property装饰器。
输出
在Python中,对象既有属性又具有属性。这两个概念可能令人困惑,因为它们相关但并不完全相同。
属性
属性是属于对象的变量。它们可以使用点符号访问,通常在对象的类定义中定义。
例子
在此示例中,我们定义了一个名为”Dog”的类,其中有两个属性:”name”和”age”。然后,我们创建一个名为”my_dog”的”Dog”对象,并将其”名称”和”age”属性分别设置为”Fido”和3。最后,我们打印“ name”属性的值,它是“ Fido”。
输出
属性
另一方面,属性是用于访问或修改属性值的方法。它们使用@property装饰器定义,可以将其视为“ getter”方法。
例子
在此示例中,我们定义了一个名为”Square”的类,其中只有一个名为”side”的属性。我们还定义了一个名为”area”的属性,它根据正方形的边长计算正方形的面积。我们创建一个名为”my_square”的Square对象,其边长为5,并打印其面积,即25。
输出
需要注意的是属性和属性不同,因为它们是用于访问或修改属性的方法。在上面的示例中,“area”不是“my_square”的属性,而是根据“side”属性计算值的属性。
在Python中的属性与属性
让我们看一些更多的代码示例,以更好地理解属性和属性之间的区别。
例子:属性与属性的例子
在该示例中,我们定义了一个名为BankAccount
的类,它有两个属性:balance
和interest_rate
。 我们还定义了一个名为interest_earned
的属性,根据账户余额和利率计算账户上获得的利息金额。 我们创建了一个名为acct1
的BankAccount
对象,其余额为1000,利率为0.05,然后使用点表示法打印其余额和获得的利息。
输出
在此示例中,balance
和interest_rate
是 BankAccount
对象acct1
的属性。 interest_earned
是一个基于该对象属性计算值的属性。 它使用@property
装饰器定义,并可以使用点表示法访问。
总体而言,Python中属性和属性的区别在于:属性只是一个对象的数据成员,而属性是一些方法,像属性一样访问,但实际上在调用时执行一些计算。
示例
下面是一个示例,演示表示矩形的类中属性和属性的用法−
输出
在此示例中,width
和height
是Rectangle
对象rect
的属性。 area
和perimeter
是根据矩形属性计算矩形面积和周长的属性。 这两个属性都使用@property
装饰器定义,并可以使用点表示法访问。
示例
下面是另一个示例,演示表示人的类中属性和属性的用法−
输出
在此示例中,name
和age
是 Person
对象person1
和person2
的属性。 is_minor
和is_adult
是基于年龄检查该人是未成年人还是成年人的属性。 这两个属性都使用@property
装饰器定义,并可以使用点表示法访问。