dir函式可以接受任何型別引數,如型別,物件,模組等.
下面一段程式將說明dir乙個模組,類,物件時的情況:
先寫乙個模組:
python **
class person:
def__init__(self,name):
self.name = name
def getname(self):
return
self.name
heyhey = person("jeff")
另存為乙個檔案testdir.py
然後在控制台輸入:
import testdir
>>> dir(testdir)
['person', '__builtins__', '__doc__', '__file__', '__name__', 'heyhey']
# 這裡,列出整個模組裡面包含的物件,不管是內建函式還是類,還是變數.person是乙個類,heyhey是乙個變數.
>>> dir(testdir.person)
['__doc__', '__init__', '__module__', 'getname']
#這裡列出person類的所有方法和顯示定義的屬性,在建構函式裡面出現有屬性是沒有出現,注意dir乙個類例項的情況:
>>> dir(testdir.heyhey)
['__doc__', '__init__', '__module__', 'getname', 'name']
#實際上是dir乙個person物件.這個物件因為通過建構函式生成.而在執行建構函式的時候有了乙個name的屬性.這就是dir類與類例項有區別的原因,推而廣之,dir不同的例項也有可能得到不一樣的結果.
而這個,就是動態語言的"動態"之處鳥.卡卡.
從數學到語文
從剛剛接觸程式的時候,我一直是推崇,程式的數學之美,即,程式中的演算法是經過數學處理以後的展現。我認為計算機就是現代數學的體現。我知道我的理解是沒有錯誤的,因為,幾乎所有的計算機大家都是數學出身,他們提出的演算法,他們發明的語言,無疑都是經典的,不衰的。但是,自從工作以來,我發現了,程式的語文是勝過...
從leetcode學到更多
4sum class solution public list foursum int num,int target arraylist ans new arraylist if num.length 4 return ans arrays.sort num for int i 0 itarget ...
從技工那學到的知識!
下面就是我從他那裡學到的知識。第一課 三思而後行 砍柴是乙個一次性的工作。只要樹木被砍掉,它就不可能再保持原樣。因此,很重要的一件事就是確保你每一次的刪除操作是無誤的。甚至即使你確定你的做法是正確的,也請你無論如何再做一次評估。重新檢查你的評估,確保它正確無誤,這樣你就可以避免犯一些本可以規避掉的錯...