0
我已經定義的類Field
。我還定義A
和B
,這是Field
子類。識別類的屬性類型,並調用其功能
現在我已經定義的其他類Tool
。它可以包含類變量,它可以是類型類Field
,或其它類,或正常可變的。如果變量類型爲Field
,則請致電fun1
並收集結果。
請提出任何辦法,我可以做的。我對面向對象編程非常陌生。
class Field(object):
def fun1(self):
return 'Field'
class A(Field):
def fun1(self):
return 'A fun1'
class B(Field):
def fun1(self):
return 'B fun1'
class Tool(object):
a1 = A()
b1 = B()
c1 = 'abc'
def fun1(self):
all_attributes = dir(self)
result_list = []
for attribute in all_attributes:
if attribute is of type Field:
result_list.append(attribute.fun1())
return return_list
但是,當我使用DIR()他們都是字符串類型得到的屬性列表如何,我知道它的類型 –
@ Rohit.nib - 對,我爲什麼說這是這裏很難給出建議。反思「自我」的屬性有點奇怪。通常你想提前知道屬性是什麼(及其類型)。 – mgilson
我剛剛寫了一個sudo代碼,只是爲了解釋我需要什麼。我們可以採取其他方式嗎?我只是想執行obj的功能取決於它的類型 –