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

Trying to create import module for Python (for RPi GPIO)

我是 Python 的新手。我正在尝试为我的 Raspberry Pi 创建一个使用 PWM 电机的假 GPIO 模块,以便我的解释器(使用 Visual Studio 代码)可以理解它并无错误地传递它。

这就是我想要实现的:

#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 是 class - start 是 class 的成员函数。

因此您需要查看 classes 是如何使用 __init__() 方法构造的,以及成员函数如何工作。

这是您需要创建的 PWM class 示例:

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)

如果这样更有意义?