我正在从Java迁移到Python。在Java中,静态变量将向类的所有对象返回相同的值,即使它被同一个类的另一个对象更改。在我阅读的Python书中,作者说,如果数据成员的赋值发生在类定义的直接范围内,则会将其输入到类命名空间中。
我使用IDLE,Python解释器,以下是Python代码:
class ABC:
OVRLIMIT_FEE=5
>>> a=ABC()
>>> b=ABC()
>>> a.OVRLIMIT_FEE+=1
>>> a.OVRLIMIT_FEE
6
>>> b.OVRLIMIT_FEE
5
但是如果它进入类命名空间,当用a和b访问它时它是否应该返回相同的值?
答案 0 :(得分:0)
您所创建的是所谓的Oldstyle类,它不支持您(正确)预期的行为。继承自 mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
switch(what){
case MediaPlayer.MEDIA_INFO_BUFFERING_START:
// handle info 701 here, MEDIA_INFO_BUFFERING_START corresponds to 701
break;
}
return true;
}
});
以创建新式类。然后它会像你期望的那样工作[...]
使用object
被隐含地理解为a.foo += 1
,其中
代码:
a.foo = a.foo + 1