裏面涉及到不同類性質類似於類的功能我有這樣一個類:如何定義__init__
class MyClass(object):
def f_1(self,x):
return foo(x, self.property_1)
def f_2(self,x):
return foo(x, self.property_2)
的想法是,多種功能f_n
有一個共同的結構,而是取決於不同的屬性property_n
的類。
我在尋找更簡潔的方式來定義那些f_n
在__init__
?我覺得像
class MyClass(object):
def __init__(self):
self.f_1 = self.construct_function(self.property_1)
self.f_2 = self.construct_function(self.property_2)
def construct_function(self, property):
# ???
這就是我的想法,但我不知道如何定義這個construct_function
。 「財產」屬於按價值類型是重要的。
編輯:
我簡化Martijn's very good answer這個解決方案,它工作正常:
def construct_function(property_name):
def f_n(self, x):
return foo(x, getattr(self, property_name))
return f_n
class MyClass2(object):
f_1 = construct_function('property_1')
f_2 = construct_function('property_2')
只是想在這裏提到它,因爲多行註釋不準......
難道這些功能常數*所有*實例,還是他們從實例有所不同的實例? – 2013-04-04 11:11:54
這些函數在結構上對於所有實例都是相同的,但當然取決於單個實例'self'的'self.propery_n'。 – flonk 2013-04-04 11:14:56
當然,像所有類的方法一樣,self可用於查找屬性。 – 2013-04-04 11:15:35