1. 程式人生 > >python中創建實例屬性

python中創建實例屬性

生日 list 如何 tle nbsp col tips lambda name

雖然可以通過Person類創建出xiaoming、xiaohong等實例,但是這些實例看上除了地址不同外,沒有什麽其他不同。在現實世界中,區分xiaoming、xiaohong要依靠他們各自的名字、性別、生日等屬性。

如何讓每個實例擁有各自不同的屬性?由於Python是動態語言,對每一個實例,都可以直接給他們的屬性賦值,例如,給xiaoming這個實例加上name、genderbirth屬性:

xiaoming = Person()
xiaoming.name = ‘Xiao Ming‘
xiaoming.gender = ‘Male‘
xiaoming.birth = ‘1990-1-1‘

xiaohong加上的屬性不一定要和xiaoming相同:

xiaohong = Person()
xiaohong.name = ‘Xiao Hong‘
xiaohong.school = ‘No. 1 High School‘
xiaohong.grade = 2

實例的屬性可以像普通變量一樣進行操作:

xiaohong.grade = xiaohong.grade + 1

任務

請創建包含兩個 Person 類的實例的 list,並給兩個實例的 name 賦值,然後按照 name 進行排序。

class Person(object):
pass

p1 = Person()
p1.name = ‘Bart‘

p2 = Person()
p2.name = ‘Adam‘

p3 = Person()
p3.name = ‘Lisa‘

L1 = [p1, p2, p3]
L2 = sorted(L1,key=lambda x:x.name)

print L2[0].name
print L2[1].name
print L2[2].name

python中創建實例屬性