亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

不會了怎么辦


class Person(object):

? ? def __init__(self, name, gender, birth, **kw):

? ? ? ? self.name = name

? ? ? ? self.gender = gender

? ? ? ? self.birth = birth

? ? ? ? for k, v in kw.iteritems():

? ? ? ? ? ? setatter(self, k, v)


xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')


print xiaoming.name

print xiaoming.job



正在回答

3 回答

**kw: 參數按照關鍵字傳值,多余的值都給KW,以字典的方式呈現

>>>?def?a(**kw):
	c=kw
	return?c
>>>?b=a(nianlin=18)
>>>?print(b)
{'nianlin':?18}
>>>

items()

把字典的鍵與值以元素的形式列出來

a={'a':123}
for?b,c?in?a.items():
????print('b:',b,'c:',c)
b:?a?c:?123


setattr() 函數

用于設置屬性值,該屬性不一定是存在的。

對已存在的屬性進行賦值:

>>>class?A(object):
...?????bar?=?1
...?
>>>?a?=?A()
>>>?getattr(a,?'bar')??????????#?獲取屬性?bar?值
1
>>>?setattr(a,?'bar',?5)???????#?設置屬性?bar?值
>>>?a.bar
5

如果屬性不存在會創建一個新的對象屬性,并對屬性賦值:

>>>class?A():
...?????name?=?"runoob"
...?
>>>?a?=?A()
>>>?setattr(a,?"age",?28)
>>>?print(a.age)
28
>>>



7 回復 有任何疑惑可以回復我~

setattr

0 回復 有任何疑惑可以回復我~
Traceback?(most?recent?call?last):
??File?"index.py",?line?9,?in?
????xiaoming?=?Person('Xiao?Ming',?'Male',?'1990-1-1',?job='Student')
??File?"index.py",?line?7,?in?__init__
????setatter(self,?k,?v)
NameError:?global?name?'setatter'?is?not?defined


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

不會了怎么辦

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號