在python中定义类中的方法

时间:2011-10-03 07:10:18

标签: python list methods

我正在迈出python编程的第一步,我有一个名为node的类,它包含一个名为node的{​​{1}}(我认为合法)列表。我试图创建一个返回列表长度但却失败的函数。这是我的代码:

sons

这是错误:

  

NameError:未定义全局名称“self”

如果我试图删除自己:

  

NameError:未定义全局名称“self”

显然我误解了什么,但是什么?

3 个答案:

答案 0 :(得分:3)

class node:
    name="temp"
    ID=-1
    abstract="a short description"
    text="the full description"
    sons=[]
    def sLen(self): # here
        print ("hello")
        return len(self.sons)

n = node()
n.sons = [1, 2, 3]
print n.sLen()

答案 1 :(得分:1)

类方法的第一个参数始终是对“self”的引用。

您可能也会在这里找到有趣的答案:What is the purpose of self?

引用最重要的一点:

  

Python决定以一种使实例的方式来做方法   该方法属于自动传递,但未收到   自动:方法的第一个参数是实例   调用方法。

如果你在python中寻找关于类定义的更全面的讨论,当然官方文档是从http://docs.python.org/tutorial/classes.html开始的地方。

答案 2 :(得分:0)

您调用了方法none的第一个参数,而不是self

return len(none.sons)