-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()
>>>

ただし、本当に function が必要な場合は、次のis_sameように記述せずにインポートします。

from operator import eq as is_same
于 2012-05-25T22:39:32.923 に答える