为什么 Python 不喜欢与成员变量进行比较?

Why does Python not like doing comparisons with member variables?

这是一个 class 的简化版本,我想通过某种算法将其用于 运行。问题是我在两个 class 变量之间的比较方法没有返回我期望的结果。

import sys

class Gosh:
    def __init__(self, magicnumber):
        self.magicnumber = magicnumber
        self.number = 1400

    def isbad(self):
        print self.number
        print self.magicnumber
        return self.number < self.magicnumber

def __main__():
    magicnumber = sys.argv[1]
    gosh = Gosh(magicnumber)
    print gosh.isbad()

__main__()

这是输出:

% python gosh.py 718
1400
718
True

来晚了,可能我脑子放屁了,但我想不通为什么会这样。

可能是因为您正在比较字符串和整数。来自 sys.argv 的值将是一个字符串,直到您将其转换为整数。

尝试:

magicnumber = int(sys.argv[1])

尝试将幻数转换为整数

magicnumber = int(sys.argv[1])