1. 程式人生 > >內置方法 常用模塊

內置方法 常用模塊

數據 工作 init ash 都是 自定義 col 裏來 一個

__new__

在init 之前 , 實例化對象的第一步是__new__創建一個空間

class Foo:
    def __init__(self):                 # 初始化方法
        print(執行了init)
    def __new__(cls, *args, **kwargs):  # 構造方法
        # object.__new__(cls)
        print(執行了new)
        return object.__new__(cls)     #如果這個return不寫,init方法永遠不會執行

obj 
= Foo()

執行了new 先執行new
執行了init

創造一個對象 比喻成 捏小人

new 是小人捏出來

init 是小人穿衣服

設計模式 常用的23種

源頭是從java裏來得 因為Java 開發一個項目 很龐大,個方面人員需要配合,就相應出了一些標準,這樣比較好對接。

python :

  推崇設計模式 :會java 也會python 從java轉的python

  貶低設計模式:純python開發 因為python 一兩個人就可以開發一個項目

單例模式: 一個類 只有一個實例

class Foo:
    __instance = None
    
def __init__(self,name,age): # 初始化方法 self.name = name self.age = age self.lst = [name]
        #self.lst = [age] 那就只打印年齡 上面的name 被覆蓋
        # self。lst = [name,age] 打印名字和年齡
def __new__(cls, *args, **kwargs): # 構造方法 if cls.__instance is None: cls.
__instance = object.__new__(cls) return cls.__instance obj1 = Foo(alex,20) obj2 = Foo(egon,22) print(obj1.lst,obj2.lst)       最後結果 print [egon] [egon]

__del__

class Foo:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.file = open(file,mode = w)
    def write(self):
        self.file.write(sjahgkldhgl)
    def __del__(self):    # 析構方法 : 在刪除這個類創建的對象的時候會先觸發這個方法,再刪除對象
        # 做一些清理工作,比如說關閉文件,關閉網絡的鏈接,數據庫的鏈接
        self.file.close()
        print(執行del了)

f = Foo(alex,20)                   # 只要寫了這個__del__ 這個方法,他必定執行,所以可以寫一個關閉文件放著,以防別人忘記關或者自己,寫這個方法上個保險
print(f)                              這個方法就是墊底的 別的程序走完 然後走他 最後一道保險

__len__

和len( )這個內置函數 其實差不多 int 和float 不適用 這個__len__同樣不適用

# len()  lst dict set str

# print(‘__len__‘ in dir(list))
# print(‘__len__‘ in dir(dict))
# print(‘__len__‘ in dir(set))
# print(‘__len__‘ in dir(tuple))
# print(‘__len__‘ in dir(str))
#

# print(‘__len__‘ in dir(int))
# print(‘__len__‘ in dir(float))    #後面兩個都是返回 False

__eq__

可以自定義 兩個值是否相等

__hash__

class Foo():
    pass

obj1 = Foo()
obj2 = Foo()
print(hash(obj1)) 
print(hash(obj1))

兩個對象的內存地址都不一樣

內置方法 常用模塊