0

私は2つのpythonファイルを持っています。language というクラスを宣言するもの:

class language:
    def __init__(self, name, letters, elements, grammar):
        self.n = name
        self.l = letters
        self.e = elements
        self.g = grammar

これを「language_class.py」として保存しました。次に、次のようにして、「turkish.py」という別のプログラムにインポートしようとしました。

turkish = __import__('language_class').language(self,"Turkish",turkish_latin,turkish_grammar).turkish

language_class.py を実行すると問題は発生しませんが、turkish.py を実行すると:

    Traceback (most recent call last):
  File "C:\Users\Ahmet\Desktop\Google Apps\transalator\The Transalator\Recources\Languages\turkish.py", line 1, in <module>
    turkish = __import__('language_class').language(self,"Turkish",turkish_latin,turkish_grammar).turkish
NameError: name 'self' is not defined

しかし、自己は明確に定義されています。これはある種のバグですか、それとも間違っていますか? このメッセージを見る数時間前にお礼を言っただけなのに、助けてくれてありがとう :D

4

1 に答える 1

4

を渡す必要はありませんself。python はそれをメソッドに自動的に提供します。

__import__()あなたがそれを助けることができるなら、あなたは本当にその機能を使いたくありません. ただ行う:

import language_class

turkish = language_class.language("Turkish", turkish_latin, turkish_grammar).turkish
于 2013-02-23T21:44:51.390 に答える