0

次のスクリプトを考えてみましょう。

def a():
   def b():
      smth = 3
   print smth

オブジェクトをグローバル スコープではなく、b() 関数内で作成した場合でも a() 関数のスコープ内で定義する方法はありますか?

何かのようなもの:

def a():
   def b():
      smth = 3
      a_bit_more_global smth
   print smth

その理由は次のとおりです。

class Blabla(object):
   def __init__(self,q,w)
     self.q = q
     self.w=w
def a():
   def b():
      smth_2 = smth_1 + 1
      global smth_2
   smth_1 = 2
   fen1 = Tk()
   ...
   ...
   Button(...,command=b).grid()
   my_blabla = Blabla(smth_1,smth_2)
   return my_blabla

最初は、関数 b() に追加の引数を渡す方法がわかりませんでした。私は最終的に b() を a() の中に入れることができると考えました。そして、同じ問題で、オブジェクト my_blabla を作成するために、b() で作成されたオブジェクトを使用したいと考えています。この問題にどのように対処しますか?

私の説明が理にかなっていることを願っています!彼らは?

ありがとうございました !

4

4 に答える 4

2

たとえば、 return ステートメントを使用できます

def a():
   def b():
      smth = 3
      return smth
   smth = b()
   print smth
于 2013-07-24T17:50:16.050 に答える
0

例は千の答えに等しい:

def a():
   def b():
      smth = 3
      return smth
   smth = b()
   print smth
于 2013-07-24T18:15:44.413 に答える