原创 裝飾器、帶參裝飾器、functools

一個加法函數,想增加它的功能,能夠輸出被調用過以及調用的參數信息 def add(x, y): return x + y 增加信息輸出功能: def add(x, y): print("call add, x + y"

原创 項目一 未完成

如何使用defaultdict defaultdict接受一個工廠函數作爲參數,如下來構造: dict = defaultdict( factory_function) 這個factory_function可以是list、set、str

原创 偏函數 partial、lru_cache、自編cache函數、命令分發器

把函數部分參數固定下來,相當於爲部分的參數添加了一個固定的默認值, 形成一個新的函數並返回 從partial生成的新函數,是對原函數的封裝 import functools import inspect def add(x, y,

原创 列表、集合、字典解析式、生成器表達式

newlist = [] for i in range(10): newlist.append((i + 1) ** 2) print(newlist) newlist1 = [(i+1)**2 for i in range

原创 類的繼承

繼承Inhertiance 人類和貓類都繼承自動物類 個體繼承自父母,繼承了父母的一部分特徵,但也可以有自己的個性 在面向對象的世界中,從父類繼承,就可以直接擁有父類的屬性和方法 這樣可以減少代碼,多複用。子類也可以定義自己的屬性和方法。

原创 面向對象題目一

隨機整數生成類,可以指定一批生成的個數,可以指定數值的範圍,可以調整每批生成數字的個數 使用這個類,隨機生成20個數字,兩兩配對形成二維座標系的座標,把這些座標組織起來,並打印輸出 一: import random class Ra

原创 猴子補丁、屬性裝飾器

Monkey Patch 在運行時,對屬性進行動態替換(黑魔法,慎用) # test1.py class Person: def __init__(self, chi, eng, his): self.chi

原创 參數註解

1、對函數的參數進行類型註解 2、對函數的返回值進行類型註解 3、只對函數參數做一個輔助說明,並不對函數參數進行類型檢查 4、提供給第三方工具,做代碼分析,發現隱藏BUG 5、函數註解的信息,保存在__annotations__屬性中

原创 偏函數 partial、lru_cache

把函數部分參數固定下來,相當於爲部分的參數添加了一個固定的默認值, 形成一個新的函數並返回 從partial生成的新函數,是對原函數的封裝 import functools import inspect def add(x, y,

原创 內建函數filter,map,柯里化

filter(function, iterable) --> filter object 過濾可迭代對象的元素,返回一個迭代器 function一個具有一個參數的函數,返回bool map(func, *iterables) --> m

原创 編寫sort函數

初版: lst = [1, 2, 3, 4, 5] def sort(iterable, reverse=False): def comp(a, b): flag = a > b if reverse els

原创 裝飾器

一個加法函數,想增加它的功能,能夠輸出被調用過以及調用的參數信息 def add(x, y): return x + y 增加信息輸出功能: def add(x, y): print("call add, x + y"

原创 列表解析式

newlist = [] for i in range(10): newlist.append((i + 1) ** 2) print(newlist) newlist1 = [(i+1)**2 for i in range

原创 lambda

lambda 參數列表:表達式 lambda x:x**2 (lambda x : x ** 2)(4)  #調用   參數列表不需要小括號 冒號是用來分割參數列表和表達式的 不需要return,表達式的值,就是匿名函數的返回值 lamb

原创 遞歸函數習題

# 階乘 def fn(n): if n == 1: return 1 else: return n * fn(n-1) print(fn(5)) def factorila(