class my_class
def is_same(self, arg1, arg2):
return arg1 == arg2
def a_function(self):
if is_same('a', 'b'):
print "They're the same"
Eclipse告诉我is_same是一个未定义的变量。我想你可以用Java做到这一点。
答案 0 :(得分:1)
is_mode
不在发布的代码中的任何位置,但是,还有另一个问题,即语法错误。
而不是原来的
print 'They're the same'
使用:
print "They're the same"
您可以使用“”或“'来包含字符串,这里您使用的是其中3个字符串。没有必要逃避'if you use“”来包围你的字符串。
更新:拥有
没有错return arg1 == arg2
在你的函数中,它将返回一个你期望的布尔值。
答案 1 :(得分:1)
我需要说self.is_same()
,因为这些函数都在一个类中。来自Java,你不需要说this.method()
,我很困惑。
答案 2 :(得分:0)
很可能pydev(我想你正在使用)再次成为一个鸡巴。它有时不会立即重新读取所有内容,然后继续显示已完成源的警告或显示警告,因为它还不知道某人已被定义。保存文件通常会有所帮助。至少如果它没有忙于“重建”项目。
除了引用错误,您的代码完全正常并按预期工作。
>>> def is_same(arg1, arg2):
... return arg1 == arg2
...
>>> def a_function():
... if is_same('a', 'b'):
... print "They're the same"
...
>>> a_function()
>>>
但是,如果你真的需要一个函数is_same
,你就不会这样写,而是导入它:
from operator import eq as is_same