Private Sub Workbook_Open()
Run "MyMacro"
End Sub
需要自我吗?
Parser.self.totalEntries
我放弃了在文档中寻找它,也许我只是一个傻瓜。
答案 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
完全不同。