2011-04-22 2 views
4

http://docs.python.org/tutorial/classes.html#class-objects에서 : 그 문서에 따르면클래스가 인스턴스화되기 전에 Python 클래스 내부에 정의 된 메소드에 대한 적절한 용어는 무엇입니까? 이 예를 사용

class MyClass: 
    """A simple example class""" 
    i = 12345 
    def f(self): 
     return 'hello world' 

, F 함수 객체를 반환하는 속성을 참조한다.

f가 무엇인지 말하는 더 짧은 방법이 있습니까? 클래스의 메서드라고 부를 수 있습니까 (잘못된 클래스 메서드). 또는 클래스 내에 정의 된 함수? 아니면 인스턴스 메서드?

다른 말로하면 MyClass와의 관계에서 f의 형식적인 짧은 용어는 무엇입니까? 당신이 MyClass.f에 의해 반환 된 f에 구체적으로 언급하는 경우

답변

6

f는 MyClass에의 언 바운드 방법입니다. 또는 적어도 그것은 REPL이 그것을 호출 무엇 : 일반적으로

>>> MyClass.f 
<unbound method MyClass.f> 

을하지만, 나는 누군가가 단순히 "방법", 평범하고 단순하게 전화 주셔서 고장 것이라고 생각하지 않습니다. 또는 MyClass와의 관계에서 MyClass의 한 방법입니다.

+1

"MyClass 메서드"- 어쨌든 사람들은 항상 "문자열 메서드"또는 "목록 메서드"라고 말합니다. – senderle

4

이 메서드는 인스턴스 (예 : instance.f() 또는 MyClass.f(instance))를 바인딩 할 때만 액세스 할 수 있기 때문에 인스턴스 메서드 (또는 멤버 함수)라고 말하고 싶습니다.

-1
x = MyClass() 
def __init__(self): 
    self.data = [] 
print x.i 
print x.f() 
print MyClass.__doc__ 

# Instance x = MyClass() 
# More __init__(self) is important 
# Sorry my english. I'm from Brazl 
+0

당신은'__init__'을 정의 할 필요가 없습니다. 원래 질문의 클래스 정의로 충분합니다. – hpaulj

관련 문제