在Python中,任何一个对象都应该由两部分组成:属性 + 方法
属性即是特征,比如:人的姓名、年龄、身高、体重…都是对象的属性。
车的品牌、型号、颜色、载重量...都是对象的属性。
对象属性既可以在类外面添加和获取,也能在类里面添加和获取。
对象名.属性 = 属性值
案例:
# 1、定义一个Person类
class Person():
pass
# 2、实例化Person类,生成p1对象
p1 = Person()
# 3、为p1对象添加属性
p1.name = '老王'
p1.age = 18
p1.address = '北京市顺义区京顺路99号'
在Python中,获取对象属性的方法我们可以通过对象名.属性
来获取
# 1、定义一个Person类
class Person():
pass
# 2、实例化Person类,生成p1对象
p1 = Person()
# 3、为p1对象添加属性
p1.name = '老王'
p1.age = 18
p1.address = '北京市顺义区京顺路99号'
# 4、获取p1对象的属性
print(f'我的姓名:{p1.name}')
print(f'我的年龄:{p1.age}')
print(f'我的住址:{p1.address}')
# 1、定义一个Person类
class Person():
def speak(self):
print(f'我的名字:{self.name},我的年龄:{self.age},我的住址:{self.address}')
# 2、实例化Person类,生成p1对象
p1 = Person()
# 3、添加属性
p1.name = '孙悟空'
p1.age = 500
p1.address = '花果山水帘洞'
# 4、调用speak方法
p1.speak()
遗留一个问题:目前我们的确可以通过对象.属性
的方式设置或获取对象的属性,但是这种设置属性的方式有点繁琐,每次定义一个对象,就必须手工设置属性,在我们面向对象中,对象的属性能不能在实例化对象时,直接进行设置呢?
答:可以,但是需要使用魔术方法