私はそのような機能を持っているとしましょう
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()
デコレータでない限り、別の方法でやらなければならないところ。