Pythonでの単純な実装があるかどうかわからないcodewarsの問題を解決しようとしています。存在する前に参照するだけで、クラスメソッド属性を動的に作成したいと考えています。直感に反するように聞こえます。プロパティがまだ存在せず、外部から値を設定せずに、メソッド内でプロパティを初期化するにはどうすればよいでしょうか?
class Thing:
def __init__(self, name):
self.name = name
@property
def is_a(self):
setattr(self.is_a,"is_a_{}".format(???),True)
john = Thing("John")
john.is_a.man
print(john.is_a_man) # this is directly from the cw test
最初に設定しないと(つまりjohn.is_a.man = True
)、これがどのように可能かわかりません。try/except を使用することが良い戦略であるというわけではありませんが、存在しない属性への参照をキャッチする方法がわからないため、ハンドラーで作成できます。これに関するガイダンスをいただければ幸いです。または、Python ではそれが不可能な場合は、それを知っておくとよいでしょう。