2017-09-13 3 views
-1

Quelqu'un peut-il m'aider avec mon code?AttributeError: l'objet 'module' n'a pas d'attribut 'pin'

from pyA20.gpio import gpio 
from pyA20.gpio import port 

pins = ["PA7",'PA3','PG6'] 

gpio.init() 

for pin in pins: 
    led = port.PA7 
    gpio.setcfg(port.pin, gpio.OUTPUT) 
    gpio.output(port.pin, 1) 

Je reçois cette erreur:

AttributeError: 'module' object has no attribute 'pin'

Je pense qu'il manque la commande pour les attributs de correctif.

+0

Voulez-vous faire 'gpio.setcfg (pin, gpio.OUTPUT)'? – MrPyCharm

+0

oui et aussi gpio.output (port.pin, 1) – Roman

+0

Je veux dire que vous essayez de passer la variable de boucle 'pin' dans les fonctions? – MrPyCharm

Répondre

0

Je ne peux pas installer le PYA20 sur ma machine, donc je ne peux pas le tester mais cela pourrait marcher pour vous. Vous ne pouvez pas ajouter une chaîne à un objet. En Python, la méthode getattr vous permet d'obtenir l'attribut d'un objet en utilisant une chaîne. Voici à quoi cela ressemble:

from pyA20.gpio import gpio 
from pyA20.gpio import port 

pins = ["PA7",'PA3','PG6'] 

gpio.init() 

for pin in pins: 
    led = port.PA7 
    current_port = getattr(port, pin) 
    gpio.setcfg(current_port, gpio.OUTPUT) 
    gpio.output(current_port, 1)