CODE
class MyClass(object):
def MyMethod(self):
print(self)
MyObject = MyClass()
print(MyObject.MyMethod())
输出
<__main__.MyClass object at 0x0000000002B70E10 >
这__main__
是什么意思?在self
参数中传递了什么?
答案 0 :(得分:5)
这
__main__
是什么意思?
直接调用的脚本被视为__main__
模块。它可以像任何其他模块一样导入和访问。
自我参数传递了什么?
MyObject
中包含的引用。
答案 1 :(得分:1)
__main__
是当前模块的名称。如果您要从另一个模块import my_module
导入模块,它将以此名称识别。因此,印刷品会说:
< my_module.MyClass object at 0x0000000002B70E10 >
答案 2 :(得分:0)
__main__
是运行脚本的模块的名称。您没有定义库,因此它不是具有名称的模块。
对于self
,它相当于C ++或Java中的this
,但Python要求您明确命名。请参阅a tutorial。
答案 3 :(得分:0)
首先:
__main__
表示运行该方法的类是正在运行的主文件 - 您单击的文件或您键入终端的文件是该类所主持的文件。这就是编写
if __name__ == "__main__":
#do stuff
在您的测试代码上 - 这可以保证只有在从最初调用的文件运行代码时才会运行测试代码。这也是为什么你永远不应该编写顶级代码的原因,特别是如果你想稍后多线程的话!
自我是识别班级的关键词。每个方法都需要有第一个参数“self” - 注意,如果不这样做,就不会抛出错误,你的代码就会失败。调用self.variable表示查找类变量而不是局部变量(仅在该方法中)或全局变量(可供所有人使用)。同样,调用self.methodName()会调用属于该类的方法。
所以:
class Foo: #a new class, foo
def __init__( self ):
#set an object variable to be accessed anywhere in this object
self.myVariable = 'happy'
#this one's a local variable, it will dissapear at the end of the method's execution
myVaraible = sad
#this calls the newMethod method of the class, defined below. Note that we do NOT write self when calling.
self.newMethod( "this is my variable!" )
def newMethod (self, myVariable):
#prints the variable you passed in as a parameter
print myVariable
#prints 'happy', because that's what the object variable is, as defined above
print self.myVariable
答案 4 :(得分:-1)
我已解决它。您可以使用列表。 例如→
print(list(your object))