這裏是我的課吧:如何使用非默認參數的值作爲Python中默認參數的默認值?
class Bar:
def __init__(self, start, end, open, volume, high=open, low=open, last=open):
self.start = start
self.end = end
self.open = open
self.high = high
self.low = low
self.last = last
self.volume = int(volume)
def __str__(self):
return self.start.strftime("%m/%d/%Y\t%H:%M:%S") + "\t" + self.end.strftime("%H:%M:%S") + "\t" +str(self.open) + "\t" + str(self.high) + "\t" + str(self.low) + "\t" + str(self.last) + "\t" + str(self.volume)
1)我想初始化高,低,最後因爲種種開放的。這是正確的方法嗎?
2)當我這樣做印刷(STR(巴))我得到有趣的輸出,如...
03/13/2012 12:30:00 13:30:00 138.91 <built-in function open> 138.7 <built-in function open> 13177656
我不會使用'_open',因爲它將變量指定爲「受保護」。我認爲當你想避免關鍵字時(我會擴展以避免內建陰影),執行'open_'的習慣稍微習慣一些。否則,很好的答案(+1) – mgilson 2012-08-03 13:31:17
這就是我正在考慮的慣例。我會更新。 – chepner 2012-08-03 13:32:42
在這種情況下,由於變量被立即分配給實例屬性'self.open',所以*可能無關緊要。但是,我想即使是常規參數也可以用'argname = value'語法來調用,所以在這種情況下它會產生(小)差異。 – mgilson 2012-08-03 13:35:31