为什么 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])
这是一个 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])