herkes. Lütfen aşağıdaki örneğe bakınız. Bot sınıfı yöntemin çağrılması gerektiğini belirten 'schedule_action' yöntemine bir dize sağlamak istiyorum. Aşağıdaki örnekte bunu 'bot.action()' olarak gösterdim, ancak doğru şekilde nasıl yapılacağını bilmiyorum.Python komut dosyası çalışıyor. String olarak bir metod ismim var. Bu yöntemi nasıl ararım?
getattr(bot, action)()
getattr adıyla nesne üzerinde bir öznitelik bakacaktır Kısacası
class Bot:
def work(self): pass
def fight(self): pass
class Scheduler:
def schedule_action(self,action):
bot = Bot()
bot.action()
scheduler = Scheduler()
scheduler.schedule_action('fight')
Bu seçeneği kesinlikle göz önünde bulundurun. Dinamik olarak aramak için bir yöntem seçmek istiyorsanız, bu sizin için doğru seçenek olabilir. Eğer ismi “kıvrımlı” bir şekilde oluşturuyorsanız, sadece “getattr” tabanlı seçenekleri kullanın (bir dosyadan, bir soketten veya kullanıcı girişinden okumak gibi). – Wesley
Açıkladığınız durumda daha önce bir hata verecektir, ancak hata derleme zamanında değil. –
ah, haklısın. yayın düzenlendi. –