为什么 python 将 self 视为 str 对象?[关闭]

Why is python treating self as an str object? [closed]

提问人:Wiktor Rzymski 提问时间:11/18/2023 更新时间:11/18/2023 访问量:54

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

5天前关闭。

这是交易。 我正在尝试制作一个密室逃脱终端游戏来娱乐,我的问题是我写了这个函数:

    def command(command, self):
        for object in self.obj:
            if object.lookthrough(command):
                object.typeout()
                break

尝试这样做执行时:弹出错误。 该值在构造函数中调用:example_scene.command(input())self.obj

    def __init__(self, description, *objects):
        self.desc = description
        self.obj = objects

问题是:我做错了什么?

这里又是代码。 类:

class scene:
    def __init__(self, description, *objects):
        self.desc = description
        self.obj = objects
    def typeout(self):
        os.system('cls')
        for x in self.desc:
            sys.stdout.write(x)
            sys.stdout.flush()
            time.sleep(0.05)
        print("\n->", end='')
    def command(command, self):
        for object in self.obj:
            if object.lookthrough(command):
                object.typeout()
                break

测试结果:example_scene.command(input())

  line 17, in command
    for object in self.obj:
                  ^^^^^^^^
AttributeError: 'str' object has no attribute 'obj'
蟒蛇 python-3.x

评论

5赞 bereal 11/18/2023
self必须是第一个参数。
5赞 jonrsharpe 11/18/2023
因为实例是第一个参数。命名第二个参数不会改变这一点 - 第一个参数的名称无关紧要,它只是一个强约定。self
0赞 Abdul Aziz Barkat 11/18/2023
请参阅:stackoverflow.com/questions/37885330/...
0赞 juanpa.arrivillaga 11/18/2023
@bereal迂腐,只是一个武断的名字。您可以为任何参数提供任何有效的 python 标识符。 是一种约定。该实例被传递给方法的第一个位置参数,我们通常将其命名为selfselfself

答: 暂无答案