python类的参数加self_python类参数self使用示例
#coding:utf-8
"""
__new__和__init__到底是怎么一回事,看下面的代碼
如果類沒有定義__new__方法,就從父類繼承這個__new__方法。
__new__先于__init__執行,類帶括號調用時,發生這樣的一件事,
先調用類的__new__方法,放回該類的實例對象,這個實例對象就是__init__方法的第一個參數。
請看代碼中tmp,self,p的內存地址都是一樣的,都是類的實例對象。
"""
class Foo(object):
def __new__(cls, *args, **kwargs):
"""如果不覆蓋這個__new__方法,也就是說不寫這個__new__方法,類會從object
繼承__new__方法完成返回值實例對象
"""
print "__new__方法先被調用"
tmp = super(Foo,cls).__new__(cls,*args, **kwargs)
print id(tmp)
print type(tmp)
print isinstance(tmp,Foo)
print issubclass(type(tmp),Foo)
return tmp
def __init__(self):
"""self是python默認傳的值,該值是調用__new__的返回值"""
print "__init__被調用"
print id(self)
p = Foo()
print id(p)
print type(p)
本條技術文章來源于互聯網,如果無意侵犯您的權益請點擊此處反饋版權投訴
總結
以上是生活随笔為你收集整理的python类的参数加self_python类参数self使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt制作一个画板_如何直接用Sketch
- 下一篇: 长期用牛奶蜂蜜做面膜好吗