-3
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 中做到这一点。

4

3 回答 3

1

is_mode在发布的代码中没有任何地方,但是,还有另一个问题,语法错误。

代替原来的

print 'They're the same'

采用:

print "They're the same"

您可以使用 " " 或 ' ' 将字符串括起来,这里您在同一个字符串中使用其中的 3 个。如果您使用 "" 包围您的字符串,则无需转义 '。

更新:拥有没有什么错

return arg1 == arg2

在您的函数中,它将按照您的预期返回一个布尔值。

于 2012-05-25T22:38:49.147 回答
1

我需要说self.is_same(),因为这些函数在一个类中。来自你不需要说的Java this.method(),我很困惑。

于 2012-05-25T23:04:37.480 回答
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
于 2012-05-25T22:39:32.923 回答