python教程:__file__、__name__、__dict__三个方法的作用
1 . file:打印當前文件的位置。
import os print(__file__) # 在pycharm執(zhí)行時默認加上絕對路徑 print(os.path.dirname(__file__)) # 打印當前文件的上一層目錄(dirname是返回文件/文件夾所在的上層目錄)2 . __name__:如果是在當前文件執(zhí)行__name__=__main__,如果當前文件被其他文件調用,則__name__ =該文件名
print(__name__)def test():print("we are in %s"%__name__)if __name__ == '__main__':test()3 .__dict__:python中的類,都會從object里繼承一個__dict__屬性,這個屬性中存放著類的屬性和方法對應的鍵值對,實例化__dict__會直接輸出__init__中的self.xxx
__dict__:查詢類中所有的內容(包括靜態(tài)屬性、動態(tài)方法),類名.__dict__
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' class A(object):"""Class A."""a = 0b = 1def __init__(self):self.a = 2self.b = 3def test(self):print ('a normal func.')@staticmethoddef static_test(self):print( 'a static func.')@classmethoddef class_test(self):print ('a calss func.')obj = A() print (A.__dict__) print (obj.__dict__)運行結果:.
{'a': 0, '__module__': '__main__', 'b': 1, 'class_test': <classmethod object at 0x00000000021882E8>, '__dict__': <attribute '__dict__' of 'A' objects>, '__init__': <function __init__ at 0x00000000023A5BA8>, 'test': <function test at 0x00000000023A5C18>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': '\n Class A.\n ', 'static_test': <staticmethod object at 0x00000000021881C8>} {'a': 2, 'b': 3}總結:
1) 內置的數(shù)據類型沒有__dict__屬性。
 2) 每個類有自己的__dict__屬性,就算存著繼承關系,父類的__dict__ 并不會影響子類的__dict__。
 3) 對象也有自己的__dict__屬性, 存儲self.xxx 信息,父子類對象公用__dict__。
 4) int, list, dict等這些常用的數(shù)據類型是沒有__dict__屬性的。
 5) python中的類,都會從object里繼承一個__dict__屬性,這個屬性中存放著類的屬性和方法對應的鍵值對。
 6) 類的__dict__并不包含其父類的屬性。
 7) 實例__dict__存有與實例相關的實例變量和函數(shù),實例__dict__下self.xxx的屬性值,其他的都是不輸出。
總結
以上是生活随笔為你收集整理的python教程:__file__、__name__、__dict__三个方法的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: python 中五种常用的数据类型
- 下一篇: python中函数和方法的区别
