Python 常量如何在if块中工作?

Python 常量如何在if块中工作?,python,Python,我是python新手。我想学习如何制作和使用“常量”。这是我的密码: class Constantine(object): ONE = 1 TWO = 2 def test(self, code): if code not in(self.ONE, self.TWO): print("safe") else: print("not safe") keeanu = Constantine()

我是python新手。我想学习如何制作和使用“常量”。这是我的密码:

class Constantine(object):
    ONE = 1
    TWO = 2

    def test(self, code):
        if code not in(self.ONE, self.TWO):
            print("safe")
        else:
            print("not safe")

keeanu = Constantine()
keeanu.test(1)

我希望代码可以安全打印。但是,它不安全。为什么?

您正在测试
中的
代码是否不是(self.ONE,self.TWO)
。如果找到了,它将打印
不安全
,它会这样做


找到它的原因是,解释器首先查找
self.ONE
self.TWO
作为实例变量。如果在该级别未找到它们,解释器将尝试将它们作为类变量解析。这对您的代码成功。

是否
1
不在
(1,2)
中?这个问题的答案是你困惑的线索。你所说的“常数”是什么意思?Python实际上没有常量。我们都假装是。谢谢。这段代码实际上是我正在使用的真实代码的替代品。我仍然在实际代码中得到一个错误。有单元测试等等。天哪,我应该在发布之前检查一下代码。TigerhawkT3-对不起,你能删除你的答案吗?这样我就可以删除这个问题了?希望你能理解我的处境。如果你愿意的话,我可以把你的其他一些问题投上一票,以弥补在这个问题上失去的选票。@BoratSagdiyev-据我所知,你应该能够删除你的问题,而不管答案是什么。如果问题的答案被否决,它只会提示您确认。这样,如果您决定将来取消删除它,它仍然会有相应的答案。@TigerhawkT3谢谢您的回复。它说我不能删除带有答案的问题,你可以标记它以引起主持人的注意。@BoratSagdiyev-如果你有不同的、独特的问题要问,你可以问一个新问题。这个答案(理论上)将帮助人们思考这个问题。