Python类属性似乎正在重置

时间:2015-11-27 10:06:47

标签: python

我这里有2个文件,一个是player.py

class playerinfo:
    def __init__(self):
        self.playername=None
        self.authtoken=None

在主文件中我有

from player import *
p=playerinfo()
class MenuScreen(Screen):
    def __init__(self, **kwargs):
        super(MenuScreen, self).__init__(**kwargs)
    def login(self, Username, Passwd):
        if logindata != "11":
            p.playername=Username
            p.authtoken=logindata[0]


class PlayerScreen(Screen):
    def __init__(self, **kwargs):
        super(PlayerScreen, self).__init__(**kwargs)
    print(p.playername)

我的问题出现在PlayerScreen类中.p.playername返回为无在playerinfo()中设置 如果我在MenuScreen类中打印p.playername,它会正确打印出播放器名称。

1 个答案:

答案 0 :(得分:1)

我看到两个问题:

  • $sql = 'UPDATE ...'; $update = $mysqli->query($sql); 语句作为print类主体的一部分执行。它缩进到错误的级别,成为PlayerScreen方法的一部分。

    您正在混合代码的那一部分中的制表符和空格,这可能是一次意外。 不要混合标签和空格以进行缩进,您只会遇到更多问题,请将编辑器配置为将标签扩展到空格。

  • 如果您的问题中的缩进不正确且__init__print方法的一部分,那么您必须在__init__之前创建PlayerScreen()个实例运行,在设置播放器名称之前触发MenuScreen().login()