理解this

刚开始学习Python的类写法的时候觉得很是麻烦,为什么定义时需要而调用时又不需要,为什么不能内部简化从而减少我们敲击键盘的次数?
你看完这篇文章后就会明白所有的疑问。

self代表类的实例,而非类。

实例来说明

class Test:
    def prt(self): print(self) print(self.__class__) t = Test() t.prt()

执行结果如下

<__main__.Test object at 0x000000000284E080>
<class '__main__.Test'>

从上面的例子中可以很明显的看出,self代表的是类的实例。而self.__class__则指向类。

self不必非写成self

有很多童鞋是先学习别的语言然后学习Python的,所以总觉得self怪怪的,想写成this,可以吗?
当然可以,还是把上面的代码改写一下。

class Test:
    def prt(this): print(this) print(this.__class__) t = Test() t.prt()

改成this后,运行结果完全一样。
当然,最好还是尊重约定俗成的习惯,使用self。

猜你喜欢

转载自www.cnblogs.com/xuechengeng/p/10413553.html