2016-07-11 39 views
0

「第一類」概念是否可以應用於Python方法/屬性,就像它可以起作用?你可以在Python方法/屬性上使用「第一類」概念嗎?

>>>a=sum 
>>>a([1,2,3]) 
6 

我想這樣做:

>>>case='lower' 
>>>'UPPERCASE'.case() 

要產生字符串對象'uppercase'。否則,我只需要使用eval

+2

當然; 'getattr('UPPERCASE',case)()'會給出'大寫'(參見例如http://stackoverflow.com/q/2612610/3001761)。請注意,您的示例並不等同,但是;在第一個分配函數本身,在第二個分配方法的*名稱*。更合適的可能是'case = str.lower',那麼你想'case('UPPERCASE')'。 – jonrsharpe

+0

那麼你肯定不能添加/改變字符串對象的方法,如果你是子類'str',那麼你可以在類定義中定義'case = str.lower',然後'MyStr('UPPERCASE')。case() - >'uppercase'' –

+0

什麼「一流」概念正好意味着什麼? – mhbashari

回答

0

你可以這樣來做:

case = str.lower # Take the lower() method of the str class. 
case('UPPERCASE') # pass your string as the first argument, which is self. 

在這種情況下,巨蟒是明確有關self作爲第一個參數的方法使這是一個更加清晰明白。

相關問題