我是Python新手。我正试图为我的树莓派创建一个假的GPIO模块,它使用PWM电机,以便我的解释器(使用Visual Studio Code)可以理解它并通过它而没有错误。
这就是我想要实现的:
#Motor.py
import RPi.GPIO as GPIO
GPIO.PWM(16,100).start(0)
这是我试图学习python处理模块的基本方式后创建的假模块
#RPi/GPIO.py
#(RPi folder has an empty __init__.py file along with the GPIO.py file)
BOARD = 1
IN = 1
OUT = 1
def setmode(a):
print(a)
def setup(a):
print(a)
def output(a):
print(a)
def PWM(a, b):
print(a)
def start(c):
print(c)
我得到的错误是这样的:AttributeError: 'NoneType' object has no attribute 'start'
我不知道如何正确创建模块,它可以与多个周期的工作。我应该如何修复它,使它达到我想要的效果?
GPIO.PWM
是一个类,start
是该类的成员函数。
因此,您需要查看如何使用__init__()
方法构造类,以及成员函数如何工作。
下面是一个需要创建的PWM类的示例:
class PWM:
def __init__(self, channel, frequency):
print(f"PWM({channel},{frequency})");
def start(self, duty_cycle):
print(f"PWM.start({duty_cycle})")
所以看看GPIO.PWM(16,100).start(0)
-这将首先通过调用PWM __init__()
方法构建一个PWM对象-然后在该对象上调用start()
方法。
如果需要PWM对象,也可以将其拆分为两个调用。例如
motor_pwm = GPIO.PWM(16.100)
motor_pwm.start(0)
这样更有意义吗?