Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのdir()、globals()、locals()関数の違いは何ですか?


locals()は、ローカルスコープで宣言された変数のディクショナリを返し、globals()は、グローバルスコープで宣言された変数のディクショナリを返します。グローバルスコープでは、locals()とglobals()の両方が同じディクショナリをグローバル名前空間に返します。 2つの関数の違いに気付くために、関数内からそれらを呼び出すことができます。たとえば、

def fun():
    var = 123
    print "Locals: ", locals()
    print "Vars: ", vars()
    print "Globals: ", globals()
fun()

これにより、出力が得られます:

Locals:  {'var': 123}
Globals:  {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'fun': <function fun at 0x00000000
037E3DD8>, '__doc__': None, '__package__': None}

vars()は、現在の名前空間のディクショナリ(引数なしで呼び出された場合)または引数のディクショナリのいずれかを返します。 locals()とvars()の主な違いは、vars()が引数を取り、要求されたオブジェクトのディクショナリを返すこともできることです。たとえば、dictにオブジェクトの属性が必要な場合は、そのオブジェクトを渡して、そのインスタンスの属性dictを取得できます。

オブジェクトのvars()関数は、同じオブジェクトの__dict__プロパティに似ています。 __dict__は、オブジェクトに対して定義されたすべての属性を返します。たとえば、

class A():
    def __init__(self, id):
        self.id = id
a = A(1)
print "__dict__: ", a.__dict__
print "vars(a): ", vars(a)
>

これにより、出力が得られます:

__dict__:  {'id': 1}
vars(a):  {'id': 1}

  1. Tkinter(Python)のroot.destroy()とroot.quit()の違いは何ですか?

    destroy()を呼び出すとき tkinterウィンドウオブジェクトを使用するメソッドは、メインループを終了します ウィンドウ内のすべてのウィジェットを処理して破棄します。 Tkinter destroy() メソッドは主に、バックグラウンドで実行されているインタープリターを強制終了して終了するために使用されます。 ただし、 quit() mainloop()の後でプロセスを停止するために、メソッドを呼び出すことができます。 働き。ボタンオブジェクトを作成することで、両方のメソッドの機能を示すことができます。 例 #Import the required libraries from

  2. Pythonのtkinterとtkinter.ttkのウィジェットの違いは何ですか?

    tkinter.ttk tkinterウィジェットのスタイルを設定するために使用されるモジュールです。 CSSを使用してHTML要素のスタイルを設定するのと同じように、tkinter.ttkを使用してtkinterウィジェットのスタイルを設定します。 tkinterウィジェットとtkinter.ttkの主な違いは次のとおりです。 − Tkinterウィジェットは、ボタン、ラベル、テキスト、スクロールバーなどを追加するために使用されますが、tkinter.ttkは、tkinterウィジェットと比較してさまざまなウィジェットをサポートしています。 Tkinter.ttkはPlac