2017-08-24 4 views
0

ことができない私がテストにTEST2からストアパス()と呼ばれるクラスをインポートしようとしています

私が行っているthis->

test1->

import smtplib 
from test2 import storePass 

Gmail = storePass() 
a = Gmail.returnPass() 

test2->

class storePass(): 
    Gmail_pass = "xcmsijw19021" 
    def returnPass(self): 
     return self.Gmail_pass 

私は次のようなエラーになっていますが - >

TypeError: returnPass() takes 0 positional arguments but 1 was given 

私は次のようにコードを書いてみる- >

class storePass(): 
    Gmail_pass = "xcmsijw19021" 
    def returnPass(self): 
     return self.Gmail_pass 

Gmail = storePass() 
a = Gmail.returnPass() 

私はエラーを取得していないと私は、(a)は問題なく印刷を実行することができます。 それは間違いなく私の輸入に間違っています!

EDIT:test1とtest2の両方が同じディレクトリにあります。

+0

'test2.py'の古いバージョンから作成された古い' test2.pyc'ファイルがありますか?あなたはあなたが思っているコードをほとんどインポートしていないでしょう。一つの方法は 'test2.py'の' returnPass'の名前を変更することですが、 'test1.py'の呼び出しを変更しないでください。引き続き同じエラーが発生した場合、 'test2.py'が使用されていないことがわかり、' storePass'が他の場所からインポートされています。 – chepner

答えて

0

あなたのコードを実行しようとしましたが、Python 2.7.6インタプリタで動作します。 私はaを印刷し、結果として私に与えますxcmsijw19021file.py

import smtplib 
from test2 import storePass 
Gmail = storePass() 
a = Gmail.returnPass() 
print a 

test2.py

class storePass(): 
    Gmail_pass = "xcmsijw19021" 
    def returnPass(self): 
     return self.Gmail_pass 

その後、私はpython file.pyを実行しなかったし、それが正しく出力を私を出力します。

これは私が使用したコードです。

私は多分それはいくつかの通訳/ ideの問題だと思いますか?

のpython3は、(a)は

+0

私が知る限り、それはどんな要因にも依存してはいけません! –

0

私が試したとUbuntu 16.04のpython 2.7でそれを実行し、期待どおりに働いたプリントを使用することにより、aswell動作します。 2つのファイルが同じフォルダにあるか、またはtest2パスがPYTHONPATHにあることを確認してください。

とにかくF.Leone pythonにはコンパイラがなく、特定のIDEに依存しないことがわかっています。

+0

両方が同じファイルにあります! そうでなければ、条件付きではなくインポートに関するエラーが発生します:/! –

+0

Python *はコンパイルされた言語です。それはネイティブマシンコードにコンパイルされません。 – chepner

+0

私は同じフォルダを書きました!無礼にする必要はありません!あなたがラッシュアウトする前にコメントを読んでください。 – ddor254

関連する問題

 関連する問題