Pythonでメソッドが存在するかどうかを確認するにはどうすればいいですか? 質問する

Pythonでメソッドが存在するかどうかを確認するにはどうすればいいですか? 質問する

関数内で__getattr__()参照された変数が見つからない場合はエラーが発生します。変数またはメソッドがオブジェクトの一部として存在するかどうかを確認するにはどうすればよいですか?

import string
import logging

class Dynamo:
 def __init__(self,x):
  print "In Init def"
  self.x=x
 def __repr__(self):
  print self.x
 def __str__(self):
  print self.x
 def __int__(self):
  print "In Init def"
 def __getattr__(self, key):
    print "In getattr"
    if key == 'color':
        return 'PapayaWhip'
    else:
        raise AttributeError


dyn = Dynamo('1')
print dyn.color
dyn.color = 'LemonChiffon'
print dyn.color
dyn.__int__()
dyn.mymethod() //How to check whether this exist or not

ベストアンサー1

クラスにそのようなメソッドがあるかどうかを確認しますか?

hasattr(Dynamo, key) and callable(getattr(Dynamo, key))

代わりself.__class__Dynamo

おすすめ記事