2017-09-26 4 views
-1

Je suis novice en python et j'ai des problèmes pour lier des fichiers et avec le constructeur. D'abord, j'ai essayé d'écrire pressao.py avec une énumération et de l'utiliser sur sensor.py, ce qui ne fonctionne pas. Si je tape le code pressao.py dans sensor.py, cela fonctionne. Donc, l'erreur est à l'importation? Peut trouver pas :(Le nom Python n'est pas défini. Liaison de fichiers

En ce qui concerne l'instanciation, il dit constructeur ne prend aucun argument, mais je l'ai défini un constructeur et vérifié l'orthographe. ((

Merci à l'avance

Code pour! sensor.py ci-dessous.

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

Avez-vous par accident une importation circulaire? (Fichier a importe b et b importe a.) –

+0

Non, mais sur les deux fichiers J'importe Enum – Jkasnese

Répondre

0

vous fichier importé mauvais pour utiliser la classe pressão, vous devez importer comme suit

from pressao import Pressao 
+0

Merci! Ça l'a vraiment fait! ; D (j'ai mis à jour mais je n'ai pas assez de réputation semble-t-il). Je pensais que Import foo importait tout sur le fichier: (( – Jkasnese

+0

) Vous avez déjà une idée sur le constructeur? – Jkasnese

+0

Vous avez déjà défini le constructeur, donc, vous ne pouvez pas instancier un objet sans paramètres – songxunzhao