'da değişken adına göre bir işlev yürütme Yapmam gereken çok sayıda farklı dosya üzerinde işlem yapmak ve dosyalardaki meta verileri getirmeye çalışmaktır.Python
Büyük bir ... elif ... yapabilirim ve her uzantı için test yapabilirim, ancak uzantıyı bir değişkende saklamanın çok daha kolay olacağını, bu ada sahip bir işlev olup olmadığını kontrol etmenin ve yürütmenin çok daha kolay olacağını düşünüyorum. o.
Bu başka stackoverflow iş parçacığı alınan benim şimdiki çözümdür: hatası "bulunamadı fonksiyonu" temel fonksiyonu, bu şekilde kayıtlı bir AttributeError yükseltirse : Bir bu sorun var
try:
getattr(modulename, funcname)(arg)
except AttributeError:
print 'function not found "%s" (%s)' % (funcname, arg)
. Bütün fonksiyonlara blokların dışında ... deneyin ekleyebilir, ancak çok hoş ya olmaz ... gibi daha bir şey ne aradığım olduğu
:
if function_exists(fun):
execute_function(fun, arg)
mı orada Bunu yapmanın açık yolu?
fun = getattr(modulename, funcname, None)
if fun is None:
print 'function not found "%s" (%s)' % (funcname, arg)
else
fun(arg)
ben fonk (arg) 'sarmak:
bir değişken içinde bu kullanmak için çağrılabilir. – geoffspear@Wooble: iyi bir öneri ya da o da yapabilir: 'if func ve callable (func):' – mouad
@Carpetsmoker: bu yardımcı olur :) – mouad