Python 使用相同的函数访问类变量
我想在一个类中创建一个函数,该函数可以访问具有相同函数的两个不同成员。例如,在下面的代码中,我希望下面的两行对类中的不同变量使用“apply”函数Python 使用相同的函数访问类变量,python,python-3.x,Python,Python 3.x,我想在一个类中创建一个函数,该函数可以访问具有相同函数的两个不同成员。例如,在下面的代码中,我希望下面的两行对类中的不同变量使用“apply”函数 print(state.apply(rate)) print(state.apply(wage)) 我曾认为,如果我在函数定义中放入一个虚拟变量(称为exposure),它将替换为传递给函数的变量(下面示例中的rate和wage)。在Python3中,这样做的正确方法是什么 class State(): def __init__(self):
print(state.apply(rate))
print(state.apply(wage))
我曾认为,如果我在函数定义中放入一个虚拟变量(称为exposure),它将替换为传递给函数的变量(下面示例中的rate和wage)。在Python3中,这样做的正确方法是什么
class State():
def __init__(self):
self.rate = 0
self.wage = 0
def apply(self, exposure):
self.exposure = self.exposure - 1
return self.exposure
state = State()
rate = State.rate
wage = State.wage
print(state.apply(rate))
print(state.apply(wage))
EDIT:我打了一个错别字,每个打印语句中都有State而不是State。我现在已经纠正了这一点这是唯一的方法:
class State:
def __init__ (self):
self.rate = 0
self.wage = 0
def apply (self, exposure):
setattr(self, exposure, getattr(self, exposure) - 1)
return getattr(self, exposure)
请注意,这些都是实例变量,因此不能使用类型State
,而只能使用对象State
然而,我想说,无论你在尝试什么,你都是做错了。如果您描述您的实际问题,我们可能会建议一种更好的解决方案。这是唯一的方法:
class State:
def __init__ (self):
self.rate = 0
self.wage = 0
def apply (self, exposure):
setattr(self, exposure, getattr(self, exposure) - 1)
return getattr(self, exposure)
请注意,这些都是实例变量,因此不能使用类型State
,而只能使用对象State
然而,我想说,无论你在尝试什么,你都是做错了。如果您描述您的实际问题,我们可能会提出更好的解决方案。您的方法毫无意义。请参见,例如,您似乎在某种程度上混淆了名为
State
的类及其实例,您可以根据需要创建任意多个实例,但在上述示例中,仅创建一个名为State
的实例。State
类没有rate
也没有wage
(实例具有这些属性,因为它们的\uuuu init\uuuuuu
设置了这些属性),并且可以对实例而不是整个类调用apply
(并且要求exposure
属性提前存在)。所以,你的Q需要更清晰。对不起,这是一个打字错误,我需要编辑。在每个打印语句中都应该是小写的s。您的方法没有意义。请参见,例如,您似乎在某种程度上混淆了名为State
的类及其实例,您可以根据需要创建任意多个实例,但在上述示例中,仅创建一个名为State
的实例。State
类没有rate
也没有wage
(实例具有这些属性,因为它们的\uuuu init\uuuuuu
设置了这些属性),并且可以对实例而不是整个类调用apply
(并且要求exposure
属性提前存在)。所以,你的Q需要更清晰。对不起,这是一个打字错误,我需要编辑。在每个打印语句中,它应该是小写的s