私はそのような機能を持っているとしましょう
def spam():
spam.eggs = "Foobar"
#do stuff
return
メソッドを実際に呼び出すことなく、別の関数でspam.eggs( )の値を取得したい。たとえば、"Foobar"spam()
def main():
print spam.eggs
そして私はそれを返したいFoobar。ただし、spam() をまだ呼び出していないため、明らかにこれは機能しません。そのため、spam.eggsプロパティを割り当てたことがないため、これを行う必要があります。
def main():
spam()
print spam.eggs
spam()ただし、属性が必要な場合は関数を呼び出したくありませんeggs。実際、卵属性があるかどうかを確認し、呼び出す前spam()に等しいかどうかを確認します。"Foobar"
def main():
if hasattr(spam,'eggs'):
if getattr(spam, 'eggs') == "Foobar":
spam()
でも前と同じように、私は電話をしていないので、まだspam割り当てられspam.eggsていません。
おそらくデコレータを使用して、これを行う方法はありますか? 割り当てを関数に少し近づけたいので、そうではないものを好みます
def func():
setattr(spam, 'eggs', 'Foobar')
setattr()デコレータでない限り、別の方法でやらなければならないところ。