模組本身是乙個物件,而每個物件都會有乙個__doc__屬性。該屬性用描述該物件的作用。
#__doc__的作用
class demo(object):
"""這是乙個簡單的例子"""
def test(self):
"""這是乙個例項物件的方法"""
print("life is short,you need python!")
def test2(self):
print("never old to lenrn")
print(demo.__doc__)
print(demo.test.__doc__)
print(demo.test2.__doc__)
輸出結果如下:
這是乙個簡單的例子
這是乙個例項物件的方法
none
即會輸出對這個物件的描述資訊,如果沒有給物件設定描述資訊,則會返回none
經常都在使用if __name__ == 『__main__』:,那麼這句話到底是什麼意思,__name__又有什麼含義呢?來看乙個例子:建立乙個名字為test.py 的檔案
def test_fun():
if __name__ == '__main__':
print('i am in my domain,my name is %s' % __name__)
else:
print('someone else calls me!,my name is %s' % __name__)
test_fun()
執行結果為:
i am in my domain,my name is __main__
再繼續建立乙個程式名字為import_test.py檔案,在這個程式裡面將test.py當做乙個模組來匯入使用,如下:
import test
test.test_fun()
執行結果如下:
someone else calls me!,my name is test
someone else calls me!,my name is test
你會發現,someone else calls me!,my name is test被列印了兩遍,第一次列印是在import test的時候,第二次列印是在執行test.test_fun()的時候列印的。以上兩個程式,列印出來的__name__的結果不一樣,從之前的__main__變成了test。__name__這個系統變數顯示了當前模組執行過程中的名稱,如果當前程式執行在這個模組中,__name__ 的名稱就是__main__如果不是,則為這個模組的名稱。
__module__表示當前操作的物件在哪個模組
__class__表示當前操作的物件是由哪個類建立的
建立乙個test.py檔案
class person(object):
def __init__(self):
self.name='laowang'
在建立乙個main.py檔案
from test import person
boj=person()
print(obj.__module__)
print(obj.__class__)
輸出結果為:
test
分別列印出當前物件所在模組名和當前物件是由哪個類建立的
__new__ 用來建立乙個物件的時候自動呼叫的方法,__init__為物件初始化的時候自動呼叫的方法。二者有什麼不同呢?執行順序是什麼呢?請看例子:
class person(object):
def __new__(cls, name, age):
print('__new__ called.')
return super().__new__(cls)
def __init__(self, name, age):
print('__init__ called.')
self.name = name
self.age = age
if __name__ == '__main__':
piglei = person('piglei', 24)
print(piglei)
執行結果為:
__new__ called.
__init__ called.
可以發現,在建立乙個物件的時候,是先執行__new__方法,然後再去執行__init__方法,new是建立物件,init是對這個物件進行初始化操作 Python高階 魔法屬性和方法
1.doc 表示類的描述資訊 2.module 和 class 當前操作物件所屬的模組和類 3.init 初始化方法,類建立物件時,自動觸發執行 4.del 物件在記憶體中釋放時,自動觸發執行 5.call 物件後加括號 物件 自動觸發執行 6.dict 類或物件中的所有屬性 7.str 列印物件時...
python中的魔法屬性
目錄無論人或事物往往都有不按套路出牌的情況,python的類屬性也是如此,存在著一些具有特殊含義的屬性,詳情如下 class foo 描述類資訊,這是用於看片的神奇 def func self pass print foo.doc 輸出 類的描述資訊test.py coding utf 8 clas...
python 高階 魔法屬性和 魔法方法
魔法屬性和魔法方法 python 中預先定義好了一些以 形式的屬性和方法。這些屬性和方法用來表示特定的意義和功能。doc 屬性 文件字串,docstring 用來對模組,類,方法進行說明的字串 可以通過 help 方法在 獲取幫助時自動呼叫 module class bases mro 屬性 mod...