2024-10-02 02:40:07 发布
网友
自我在Parser.self.totalEntries中需要吗
Parser.self.totalEntries
class Iter(Parser): def __init__(self, Parser): self.totalEntriesI = Parser.self.totalEntries
我已经放弃在文件里找了,也许我只是个傻瓜
简单的回答是:不,你不需要它
我试图理解你的代码,但这部分让我感到困惑:
def __init__(self, Parser):
然而,parser的大写字母p可能有点模棱两可:它可以表示从中继承的Parser类(在这种情况下,这个参数是无用的),也可以表示“作为参数给定的任何解析器”(在这种情况下,为了清楚起见,您可能需要将其小写)
Parser
假设您指的是一个特定的给定解析器,那么您可以重写所有解析器以获得以下内容:
def __init__(self, myLovelyParser): self.totalEntriesI = myLovelyParser.totalEntries
这就更清楚了
self的唯一要点是为隐式实例参数提供绑定名称。 更具哲理的是:“从外部看,没有self”
self
self参数(不需要,但应该这样调用)与被调用的对象相同。现在__init__有点特殊,但一般来说obj.method(args)与cls.method(obj, args)相同,其中cls是obj的类。self没有什么比调用方法时自动插入更神奇的了。当然,__init__参数是正在构造的对象
__init__
obj.method(args)
cls.method(obj, args)
cls
换句话说,self(或first)参数就是调用方法的对象
您试图执行的操作有点不清楚(因为将参数命名为与方法的类相同有点混乱),但是self不是您想要访问其他对象时要做的,首先您还必须提供其他对象(例如作为参数)并以相同的方式访问它:
def method(self, other): self.attr = other.attr
请注意,other.self.attr将要求对象other具有一个名为self的属性,而它通常不具有该属性。因此,这样做通常是不正确的——无论如何,它与other.attr是完全不同的
other.self.attr
other
other.attr
简单的回答是:不,你不需要它
我试图理解你的代码,但这部分让我感到困惑:
然而,parser的大写字母p可能有点模棱两可:它可以表示从中继承的
Parser
类(在这种情况下,这个参数是无用的),也可以表示“作为参数给定的任何解析器”(在这种情况下,为了清楚起见,您可能需要将其小写)假设您指的是一个特定的给定解析器,那么您可以重写所有解析器以获得以下内容:
这就更清楚了
self
的唯一要点是为隐式实例参数提供绑定名称。 更具哲理的是:“从外部看,没有self
”self
参数(不需要,但应该这样调用)与被调用的对象相同。现在__init__
有点特殊,但一般来说obj.method(args)
与cls.method(obj, args)
相同,其中cls
是obj的类。self
没有什么比调用方法时自动插入更神奇的了。当然,__init__
参数是正在构造的对象换句话说,
self
(或first)参数就是调用方法的对象您试图执行的操作有点不清楚(因为将参数命名为与方法的类相同有点混乱),但是
self
不是您想要访问其他对象时要做的,首先您还必须提供其他对象(例如作为参数)并以相同的方式访问它:请注意,
other.self.attr
将要求对象other
具有一个名为self
的属性,而它通常不具有该属性。因此,这样做通常是不正确的——无论如何,它与other.attr
是完全不同的相关问题 更多 >
编程相关推荐