でアクセスグローバルリストを、私は、Pythonに新しいですが、この前に、私はこのコードを実行すると、私はC.Pythonの - 機能
def cmplist(list): #Actually this function calls from another function
if (len(list) > len(globlist)):
globlist = list[:] #copy all element of list to globlist
# main
globlist = [1, 2, 3]
lst = [1, 2, 3, 4]
cmplist(lst)
print globlist
を使用していた、それは私がしたい、次のエラー
if (len(list) > len(globlist)):
NameError: global name 'globlist' is not defined
を示し引数として渡さずに関数からgloblistにアクセスして変更することができます。この場合、出力は
[1, 2, 3, 4]
でなければなりません。誰でも解決策を見つけるのを手助けできますか?
いつでも歓迎されます。 ありがとうございます。
編集: ありがとうMartijn Pietersの提案。 Origionalエラーは、あなたが行うことができます
UnboundLocalError: local variable 'globlist' referenced before assignment
あなたはそれがその例外をスローするコードであることを確認してください** **
をありますか?書かれているので、代わりに 'UnboundLocalError'を取得します。 –
つまり、あなたは* NameErrorを取得できません。名前はあなたが投稿したサンプルコードで明確に定義されています。さらに上に、あなたが投稿したコードは関数*の中の 'globlist' *という名前に割り当てられ、以下の答えで説明されているように' global'ステートメントで特にオーバーライドされない限りローカルにします。しかし、あなたが投稿したコードに対して異なる例外が発生した場合にのみ意味があります。 –
ご迷惑をお掛けして申し訳ございません。はい、次のエラーを表示します。 'UnboundLocalError:割り当て前にローカル変数 'globlist'が参照されています。 ' –