python核心擴充套件

2021-08-20 20:46:52 字數 1675 閱讀 3506

def

get_fb

(num):

#初始化數列

fb_list = [1,2]

for i in range(0,num-2):

#初始化列表最後一位為0,防止報錯

fb_list[i+2] = fb_list[i] + fb_list[i+1]

return fb_list

從上我們得到了乙個固定位數的斐波那契數列,由此引申出乙個問題:求斐波那契數列第n項的值

以下是對上述問題的幾種解法:

- 遞迴函式

def

get_value

(n):

if n <= 1:

return

1return get_value(n-1) + get_value(n-2)

遞迴可以解決當n值不大的情況,當n值過大時,由於多次重複計算,導致執行速度太低

def

momo

(func):

cache = {}

defwarp

(*args):

if args not

in cache:

cache[args] = func(*args)

return cache[args]

return warp

@momo

defget_value

(n):

if n <= 1:

return

1return get_value(n-1) + get_value(n-2)

將a = [『abc01』,』abc02』,』abc03』,』abc04』]中所有』abc』替換為』000』

#map + 列表生成式 + lambda表示式

a = list(map(lambda x:x.replace('abc','000'),[i for i in a]))

def

change_str

(c):

b =

for i in c:

i = i.replace('abc','000')

return b

change_str(a)

當對同一資料在需要進行過濾時,我們一般採用以下幾種方法

在對類進行大量例項化時,__dict__物件自身占用了1024位元組的記憶體

__dict__是動態為物件增加屬性

為了減少記憶體的使用,採用預先宣告屬性的方法__solts__

class

person:

__solts__ = ['uid','name','***']

def__init__

(self, uid, name, move, ***='男')

self.eat = eat

self.speak = speak

self.move = move

例項化乙個person類

p1 = person('01','jack')

p1.eat = 'yes'

此時不能動態新增方法,會報錯,但是節省了記憶體空間

python核心裝飾 python核心 裝飾器

ython有著強大的表示式語法和函式特性,其中乙個我的最愛便是裝飾器。在設計模式中,裝飾器能夠在不使用子類的情況下動態的修改函式 方法或類的功能。當你需要擴充套件某個函式的功能卻不想直接修改這個函式的時候,裝飾器就可以派上用場了。實現裝飾器模式有很多種方法,但是python通過強大的語法支援來讓這個...

linux核心 使用的 gnu c 擴充套件

gnu cc是乙個功能非常強大的跨平台c編譯器,它對c語言提供了很多擴充套件,這些擴充套件對優化 目標 布局 更安全的檢查等方面提供了很強的支援。本文把支援gnu擴充套件的c語言稱為gnu c。linux核心 使用了大量的gnu c擴充套件,以至於能夠編譯linux核心的唯一編譯器是gnu cc,以...

php的核心擴充套件怎麼寫

方法 一 用c去寫php的核心擴充套件,然後php就像呼叫原生函式一樣呼叫 舉例如下 php crypto.c include stdio.h include php.h include php crypto.h include netpayclient.h php function signord...