Каков надлежащий термин для методов, определенных внутри класса Python до его создания? - PullRequest
4 голосов
/ 22 апреля 2011

Используя этот пример из http://docs.python.org/tutorial/classes.html#class-objects:

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

Согласно этим документам, f является ссылкой на атрибут, который возвращает функциональный объект.

Есть ли более короткий способ сказать, что такое f? Могу ли я назвать это методом класса (обратите внимание, что я не сказал «метод класса», что неверно)? Или функция, определенная в классе? Или метод экземпляра?

Другими словами, что является формальным сокращенным термином для f с точки зрения его отношения к MyClass?

Ответы [ 3 ]

6 голосов
/ 22 апреля 2011

Если вы имеете в виду конкретно f, возвращаемое MyClass.f, тогда f - это несвязанный метод MyClass.Или, по крайней мере, так его называет REPL:

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

В общем, я не думаю, что кто-то может обвинить вас в том, что вы просто назвали его «методом», простым и понятным.Или, с точки зрения его отношения к MyClass, метод MyClass.

4 голосов
/ 22 апреля 2011

Я бы сказал, что это метод экземпляра (или функция-член), потому что этот метод доступен только тогда, когда вы связываете его с экземпляром, instance.f() или MyClass.f(instance).

0 голосов
/ 19 августа 2013
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 
...