我需要一個級路由器(由於缺乏一個更好的詞)。路由器需要實例化一個類&根據傳遞給它的變量調用該類實例的一個函數。如何調用類函數從變量
如何正確定義類的功能?
如何正確調用類的功能?
示例代碼:
class ClassWorker1:
def function_1(self):
print('1a')
def function_2(self):
print('2a')
def function_3(self):
print('3a')
class ClassWorker2:
def function_1(self):
print('1b')
def function_2(self):
print('2b')
def function_3(self):
print('3b')
class ClassRouter(object):
def __init__(self, class_name, class_function):
self.class_instance = class_name()
self.class_function = class_function
self.main()
def main(self):
# how should I call the class function here?
self.class_instance.class_function()
return
a = 1
b = 1
if a == 1:
class_name = ClassWorker1
else:
class_name = ClassWorker1
if b == 1:
# Strings won't work as class function definition
# I won't know the class at this point. I will only know
# the shared function name at this point.
# how could this class function be defined directly?
class_function = 'function_1'
elif b == 2:
class_function = 'function_2'
else:
class_function = 'function_3'
ClassRouter(class_name, class_function)
如果我還不知道該課程,我該如何正確定義該方法?那麼我將如何正確使用變量&而不是方法名稱來調用該對象? – Emily
如果直接調用「路由」方法,那麼使用類的意義何在?一個普通的函數也可以工作。 –
主要原因是因爲路由器的實例將在線程上運行。將有數百個線程。每個線程都需要一個獨特的路由器實例,他們需要同時工作。我不確定如何在不使用課程的情況下做到這一點? – Emily