设置类实例Var中的自我必需来自不同的类实例Var Python

时间:2015-07-24 22:11:00

标签: python class inheritance

Private Sub Workbook_Open() Run "MyMacro" End Sub 需要自我吗?

Parser.self.totalEntries

我放弃了在文档中寻找它,也许我只是一个傻瓜。

2 个答案:

答案 0 :(得分:0)

简短回答是:不,你不需要它。

我试图理解你的代码,但这部分让我感到困惑:

def __init__(self, Parser):

然而,解析器的大写P可能有点模棱两可:它可能意味着你继承的Parser类(在这种情况下这个参数是无用的),或者'作为参数给出的任何解析器'(在这种情况下,为了清晰起见,您可能希望将其小写。

假设您指的是一个特定的给定解析器,您可以重写all以获得以下内容:

def __init__(self, myLovelyParser):

self.totalEntriesI = myLovelyParser.totalEntries

哪个更清楚。

self的唯一要点是为隐式实例参数提供绑定名称。 哲学上更多:“从外面看,没有self

答案 1 :(得分:0)

self参数(不需要,但应该被调用)与被调用的对象相同。现在__init__有点特别,但一般obj.method(args)cls.method(obj, args)相同,其中cls是obj的类。 self没有比调用方法时自动插入更神奇的了。当然__init__ self参数是正在构造的对象。

换句话说,self(或第一个)参数只是调用该方法的对象。

有点不清楚你正在尝试执行什么(因为让一个名为与方法类相同的参数有些令人困惑),但self不是你的意思如果你想访问其他一些对象会有所作为,首先你必须提供另一个对象(例如作为参数)并以相同的方式访问它:

def method(self, other):
     self.attr = other.attr

请注意,other.self.attr要求对象other具有一个名为self的属性,它通常不会。因此,这通常是不正确的 - 无论如何它与other.attr完全不同。