在python中定义类内的方法
我正在进行python编程的第一步,我有一个名为在python中定义类内的方法,python,list,methods,Python,List,Methods,我正在进行python编程的第一步,我有一个名为node的类,它包含一个名为sons的node列表(我认为这是合法的)。我试图创建一个返回列表长度的函数,但失败了。这是我的密码: class node: name="temp" ID=-1 abstract="a short description" text="the full description" sons=[] def sLen(none): print ("hello")
node
的类,它包含一个名为sons
的node
列表(我认为这是合法的)。我试图创建一个返回列表长度的函数,但失败了。这是我的密码:
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”
显然我误解了什么,但是什么?您调用了方法的第一个参数
none
,而不是self
return len(none.sons)
您调用了方法的第一个参数
none
,而不是self
return len(none.sons)
类方法的第一个参数始终是对“self”的引用 也许你也会在这里找到有趣的答案: 引用最重要的一点: Python决定以一种使实例 该方法将自动传递,但不会被接收 自动:方法的第一个参数是实例 方法被调用
如果您想更深入地讨论python中的类定义,当然可以从官方文档开始:。类方法的第一个参数始终是对“self”的引用 也许你也会在这里找到有趣的答案: 引用最重要的一点: Python决定以一种使实例 该方法将自动传递,但不会被接收 自动:方法的第一个参数是实例 方法被调用
如果您想更深入地讨论python中的类定义,当然可以从官方文档开始:。注意,这只解决了代码中的一个问题。这段代码的唯一问题是我不明白它应该做什么。从Python的角度来看,没有问题。请参阅我的更新,此代码运行良好。@loki2302:您无法理解我的代码的用途的原因是,目前,主要是我在试图弄清楚一些东西。如果你感兴趣的话,我可以告诉你,我正在尝试构建一个简单的RPG活动管理器。@ YoTaMm:嗯,你应该考虑使用任何现有的解决方案,而不是从头开始执行所有这些东西。如果您正在编写RPG,请专注于RPG而不是节点。除非“节点”是字符;-)请注意,这只修复了代码中的一个问题。这段代码的唯一问题是我不明白它应该做什么。从Python的角度来看,没有问题。请参阅我的更新,此代码运行良好。@loki2302:您无法理解我的代码的用途的原因是,目前,主要是我在试图弄清楚一些东西。如果你感兴趣的话,我可以告诉你,我正在尝试构建一个简单的RPG活动管理器。@ YoTaMm:嗯,你应该考虑使用任何现有的解决方案,而不是从头开始执行所有这些东西。如果您正在编写RPG,请专注于RPG而不是节点。除非“节点”是字符;-)第一个参数总是self类,我可以给它取我喜欢的名字吗?不过你真的应该给它取个名字,这样以后可能阅读代码的其他人就不会感到惊讶了。第一个参数总是self类,我可以给它取我喜欢的名字吗?不过你真的应该给它取个名字,因此,其他可能稍后阅读代码的人并不感到惊讶。