python中創建實例屬性
阿新 • • 發佈:2018-04-18
生日 list 如何 tle nbsp col tips lambda name
雖然可以通過Person類創建出xiaoming、xiaohong等實例,但是這些實例看上除了地址不同外,沒有什麽其他不同。在現實世界中,區分xiaoming、xiaohong要依靠他們各自的名字、性別、生日等屬性。
如何讓每個實例擁有各自不同的屬性?由於Python是動態語言,對每一個實例,都可以直接給他們的屬性賦值,例如,給xiaoming這個實例加上name、gender和birth屬性:
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中創建實例屬性