我无法在同一个类的方法中访问类变量,我的方法也具有相同的类变量名称
export function items(state = initState, action) {
switch (action.type) {
case "APPROVE":
return {
...state,
loading: true
};
case "APPROVED":
return {
...state,
loading: false,
item: {
status: "approved"
}
};
case "RESET":
return {
...state,
loading: true
};
case "DONE_RESET":
return {
...state,
loading: false,
item: {
status: "pending"
}
};
default:
return state;
}
}
答案 0 :(得分:1)
此代码将帮助您理解类变量,实例变量和局部变量之间的区别。
class Test:
x = 10 //class variable or static variable; shared by all objects
def __init__(self):
self.x = 20 //instance variable; different value for each object
def func(self, x): //method variable
print Test.x
print self.x
print x
输出:
10
20
30
Test.x打印静态变量。要使用实例变量,必须使用self.instance_variable,并且可以在方法中直接使用局部变量。
答案 1 :(得分:0)
您需要执行以下操作! 正如Barmar所提到的,对类和类变量使用相同的名称并不是一个好习惯!
>>> class x():
... def method(self, v1):
... self.x = v1
... print self.x
...
>>> y = x()
>>> y.method(5)
5
>>> y.x
5