Python类属性似乎正在重置

2024-03-29 12:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我这里有两个文件,一个是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()中设置的None 如果我在MenuScreen类中打印p.playername,它会正确地打印出playername


Tags: 文件selfnoneinitdefscreenkwargsclass
1条回答
网友
1楼 · 发布于 2024-03-29 12:30:19

我看到两个问题:

  • print语句作为PlayerScreen类主体的一部分执行。它缩进到错误的级别,成为__init__方法的一部分

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

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

相关问题 更多 >