IchPython Klasse Methode Error - ungebundene erfordert Instanz
Hardware.gpio_active(True)
Das ist meine Hardware-Klasse aufrufen:
import os
import glob
import time
import RPi.GPIO as GPIO
#class to manage hardware -- sensors, pumps, etc
class Hardware(object):
#global vars for sensor
base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
#global var for program
temp_unit = 'F' #temperature unit, choose C for Celcius or F for F for Farenheit
gpio_pin = 17
#function to enable GPIO
@classmethod
def gpio_active(active):
#system params for sensor
if active is True:
os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')
GPIO.setmode(GPIO.BCM)
GPIO.setup(Hardware.gpio_pin, GPIO.OUT)
print 'activating GPIO'
else:
print 'deactivating GPIO'
GPIO.cleanup()
ich diesen Fehler:
TypeError: unbound method gpio_active() must be called with Hardware instance as first argument (got bool instance instead)
I don Ich möchte keine Instanz übergeben - ich möchte gpio_active()
grundsätzlich als eine Funktion fungieren, aber Zugriff auf statische Klassenvariablen behalten. Ich dachte, das ist was @classmethod
war für. Ich bekomme den gleichen Fehler mit @staticmethod
.
Was bin ich Missverständnis?
Nein, mit 'staticmethod' Sie sollten * nicht * den gleichen Fehler bekommen. Das ist die Beschreibung von [staticmethod] (https://docs.python.org/2.7/library/functions.html#staticmethod). Es übergibt nicht implizit ein Argument an eine Funktion. –