Python - < __ main __。MyClass对象位于0x0000000002B70E10>

时间:2013-06-01 02:35:12

标签: python python-3.x

CODE

class MyClass(object):
    def MyMethod(self):
        print(self)           

MyObject = MyClass()
print(MyObject.MyMethod())            

输出

<__main__.MyClass object at 0x0000000002B70E10 >

__main__是什么意思?在self参数中传递了什么?

5 个答案:

答案 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))