2012-05-25 5 views
-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에서이 작업을 수행 할 수 있다고 생각합니다.파이썬에서 if 문의 조건으로 부울을 반환하는 메소드를 사용할 수 있습니까?

+3

* * 실제로 실행 했습니까? –

+0

'print '그것들은 구문 오류입니다. 작은 따옴표를 이스케이프하거나 문자열을 큰 따옴표로 묶으십시오. – ThiefMaster

+2

코드에'is_mode'를 표시하지 않습니다. –

답변

1

나는 이러한 기능은 클래스 내에 있었기 때문에 self.is_same() 말을 할 필요가 있었다. 라고 말할 필요가없는 Java에서 왔기 때문에 혼란 스러웠습니다.

1

is_mode은 게시 된 코드에 없지만 구문 오류가 있습니다. 대신 원래

print 'They're the same' 

사용

:

print "They're the same" 

당신은 여기에 같은 문자열 중 3을 사용하고, 문자열을 둘러싸 ""또는 ''를 사용할 수 있습니다. 문자열을 둘러싸 기 위해 '사용하는 경우'를 벗어날 필요가 없습니다.

UPDATE : 예상대로 함수에서

return arg1 == arg2 

을 가지고 아무 문제가 없다, 그것은 부울 값을 반환합니다.

+0

왜 downvote? – Levon

+0

아마 그가 게시 한 오류와 관련이 없기 때문일 수 있습니다. – ThiefMaster

+1

@ThiefMaster 오, 알았어. 그 코드가 ***이 아니기 때문에 사소한 것처럼 보이고, 코드의 어디에도 is_mode가 보이지 않는다. 게다가, 아무 것도 코멘트없이 downvote보다 가치가 없습니다. 나는 (다른 사람들처럼) 실수를하는 것을 안다. 그러나 내가 왜 그런지 모르면 이걸로 무엇이든 배울 수 없다. – Levon

0

대부분의 pydev (내가 사용하고있는 것으로 추측)는 거시기가되었습니다. 때로는 모든 것을 즉시 다시 읽지 않고 소스가 이미 끝난 곳에서 경고를 계속 보여 주거나 누군가가 정의되었다는 것을 알지 못하기 때문에 경고를 표시합니다. 파일을 저장하면 도움이됩니다. 최소한 그것이 프로젝트를 "재건"하지 않는 경우.

인용 오류 외에도 코드가 완벽하게 작동하고 의도 한대로 작동합니다. 당신이 정말로 함수 is_same를 필요한 경우

>>> def is_same(arg1, arg2): 
...  return arg1 == arg2 
... 
>>> def a_function(): 
...  if is_same('a', 'b'): 
...   print "They're the same" 
... 
>>> a_function() 
>>> 

그러나,이처럼 쓰기보다는 그것을 가져올 것이다 :

from operator import eq as is_same 
+0

예제로 is_same을 사용하고있었습니다. 내 코드에서 내 is_mode 함수는 다른 것을하지만 부울을 반환합니다. – travis1097

관련 문제