2017-09-26 7 views
-1

私はPythonには新しく、ファイルとコンストラクタのリンクに問題があります。Pythonの名前が定義されていません。ファイルをリンクする

まず、pressao.pyを列挙型で作成し、それをsensor.pyで使用しようとしましたが動作しません。 sensor.pyにpressao.pyコードを入力しても機能します。だから間違いは輸入にあるのだろうか?それを見つけることができません:(

インスタンス化に関しては、コンストラクタは引数をとりませんが、私は、コンストラクタを定義し、スペルをチェックしましたと言う:。!((

事前に感謝

コードについて以下sensor.py:

from enum import Enum 
    import pressao 

    # When I uncomment this section below, code works. That's all the code in pressao.py copy-pasted. 
    """class Pressao(Enum): 
     NORMAL = 0 
     BAIXA = 1 
     ALTA = 2""" 

    class Sensor: 
     """Classe responsavel pela definicao dos sensores. 
      Atributos: 
      int bmp 
      bool movimento 
      Pressao pressao""" 

    def __init__(self, bmp, movimento, pressao): 
     self.bmp = int(bmp) 
     self.movimento = bool(movimento) 
     self.pressao = pressao 

    a = Sensor() 

    #Says object takes no parameters in python3 and constructor takes no arguments in python 2 
    #Third argument should be of type enum Pressao, but I'm testing with string first 
    foo = Sensor(100, True, "bar") 

    a.bmp = 100 
    print(a.bmp) 

    #Says Pressao is not defined. However, if I uncomment the code above, it does work. 
    a.pressao = Pressao.NORMAL 
    print(a.pressao) 
+0

偶然、あなたは循環輸入していますか? (インポートaとインポートbをインポートします) –

+0

いいえ、両方のファイルにインポートしますEnum – Jkasnese

答えて

0

あなたは、ファイル間違ったインポートクラスPressaoを使用するには、

from pressao import Pressao 
を次のようにインポートする必要があります。 0
+0

ありがとう!それは本当にそれをやった! ; D(私はupvotedしかし、私はそれが十分な評判を持っていないようです)。私はImport fooがファイルのすべてをインポートすると思っていました:( – Jkasnese

+0

コンストラクタについての知識はありますか? – Jkasnese

+0

コンストラクタはすでに定義済みですので、パラメータなしでオブジェクトをインスタンス化することはできません – songxunzhao

関連する問題