我是python中的新手,我有一个小问题,我有两个类,并且它表示:set_gyro_angle()只需要1个参数(给定2个)如何调用 set_gyro_angle()机器方法的方法?
class Gyro(object):
"""gyroskop senzor"""
def __init__(self,gyro_start_angle = 0):
self.gyro_angle = 0
def get_gyro_angle():
return self.gyro_angle
def set_gyro_angle(angle):
self.gyro_angle = angle
return 0
class Maschine(object):
def __init__(self, state = "normal",length = 10,width = 15):
self.length = length
self.width = width
self.gyro = Gyro()
def setPoint(self,alpha):
self.gyro.set_gyro_angle(alpha)
return 0
主要:
maschine = Maschine()
maschine.setPoint()
答案 0 :(得分:2)
如果要创建实例方法,则需要添加一个额外的参数,该参数将是指向实例的指针。通常是self
:
class Gyro(object):
"""gyroskop senzor"""
def __init__(self,gyro_start_angle = 0):
self.gyro_angle = 0
def get_gyro_angle(self):
return self.gyro_angle
def set_gyro_angle(self, angle):
self.gyro_angle = angle
return 0
我认为你希望setPoint
是这样的:
def setPoint(self, alpha):
self.gyro.set_gyro_angle(alpha)
答案 1 :(得分:2)
所有实例方法都应该有其他参数self
,而不是其他参数;这是实例本身,并自动传递:
def set_gyro_angle(self, angle):
或者,跳过设置器:
self.gyro.gyro_angle = alpha
答案 2 :(得分:2)
Machine.gyro.set_gyro_angle(45)
但是,您需要通过添加self参数作为类方法的第一个参数来修复代码。