2010-11-10 84 views
0

我必須創建一個函數printObjects(屬性,選項),它必須根據某個屬性打印對象。該屬性可以將整數或字符串作爲輸入。選項屬性是可選的。我如何爲我的課程實現這個目標?我如何處理Python中的屬性?

+2

「的選項屬性是可選」什麼?!?!我希望這意味着名爲'option'的printObjects的第二個參數不是必需的。否則,我很困惑選擇/屬性的不同用途。假設你的意思是我希望的,那麼選擇什麼?和它默認的是什麼? – 2010-11-10 17:31:48

+0

* print * * * * objects * * based * * on * * a * * certain * * attribute *這是什麼意思? : - | – fortran 2010-11-10 17:41:42

回答

1

我想,你希望這樣的事情,或許這將是有幫助的,至少:

 
def printObject(obj, attributes=()): 
    for a in attributes: 
    print getattr(obj, a) 
+7

**不要使用可變的默認參數**(除非你真的知道它是如何工作的並且*想要*這種行爲;並且它在這個例子中贏得了'任何錯誤'*但是最好指出這一點)請參閱http://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument – delnan 2010-11-10 17:41:48

+0

在這種情況下,很好,'屬性'不寫入。 – 2010-11-10 20:05:21

+1

這是正確的做法。謝謝。對不起原來的問題,我的含糊不清,但這個人得到了我的意思:) – Trim 2010-11-11 03:24:47