我正在进行python编程的第一步,我有一个名为node的类,其中包含一个名为nodesons(我认为是合法的)列表。我试图创建一个返回列表长度的函数,但是它失败了。这是我的代码:

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


这是错误:


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


如果我尝试移除自我:


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


显然我误解了一些东西,但是呢?

最佳答案

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()

10-06 05:56