2011-04-22 84 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的正式短期术语是什么?

回答

6

如果你具体指通过MyClass.f返回f,然后f是MyClass的一个不受约束的方法。或者至少这是什么REPL称之为:

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

总的来说,虽然,我不认为任何人会指责你简单地称它是“法”,简单明了。或者,就其与MyClass的关系而言,MyClass的一种方法。

+1

或者可能是“MyClass方法” - 无论如何,人们总是说“字符串方法”或“列表方法”。 – senderle 2011-04-22 04:27:58

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 2013-08-19 07:15:04

相关问题