尝试为Python创建导入模块(用于RPi GPIO)



我是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)

这样更有意义吗?

相关内容

  • 没有找到相关文章

最新更新