import multiprocessing
def process1():
return 1
def process2():
return 2
p1=multiprocessing.process(target=process1)
p2=multiprocessing.process(target=process1)
p1.start() #啟動
p2.start()
p1.join() #在主程式中等待相應程序完成
p2.join()
def line_out():
def line(x):
return x+1
my_line=line_out()
print(my_line(2)) #3
函式定義中引入外部變數
def line_out():
b=10
def line(x):
return x+b
b=1return line
my_line=line_out()
print(my_line(5)) #6
line和b構成了閉包
再來乙個例子
def line_out(a,b):
def line(x):
return a*x**2+b
return line
line1=line_out(1,2) #x^2+2
line2=line_out(2,3) #2x^2+3
def decorate(old_func):
def new_func(a,b):
print("input",a,b)
return old_func
return new_func
@decorate
def add(a,b): #將函式作為引數傳遞給decorate( )
return a+b
@decorate
def divide(a,b):
return a-b
if __name__=="__main__":
print(add(1,2)) #add=decorate(add)
#add(1,2)
print(divide(1,2))
裝飾器也可以帶參,定義和@處加引數即可
裝飾類:
def decorate_class(someclass):
class new_class(object):
def __init__(self,age):
self.total_display = 0
def display(self):
self.total_display += 1
print("total dispay:",self.total_display)
return new_class
@decorate_class
class bird:
def __init__(self,age):
self.age=age
def display(self):
print("age:",self.age)
if __name__=="__main__":
chicken=bird(3)
for i in range(3):
chicken.display()
結果 :
total display:1
age:3
total display:1
age:3
total display:1
age:3
lambda_sum=lamda x,y:x+y
print(lambda_sum(1,2))
lis=[6,7,3,4]
res=map(lambda x:x+3,lis) #第二個為可迴圈物件
print(list(res)) #[9,10,6,8]
或:
lis1=[1,3,5,6]
lis2=[1,3,5,6]
def add(x,y):
return x+y
res=map(add,lis1,lis2) #2,6,10,12
def larger(a):
if a>100:
return true
else:
return false
for i in filter(larger,[1,101,99,20]):
print(i) #101
from functools import reduce
lis=[1,2,3,4,5]
res=reduce(lambda x,y:x+y,lis) #函式累進的作用於各個引數
print(res) #15
生成器: gen=(x for x in range(3))
列表:lis=[x**2 for x in range(3)]
x1=[1,2,3,4]
y1=[2,3,4,5]
lis=[x**2 for (x,y) in zip(x1,y1) if y>4]
詞典: dic=
print(dic) #
python基礎學習筆記(五)
字串基本操作 所有標準的序列操作 索引 分片 乘法 判斷成員資格 求長度 取最小值和最大值 對字串同樣適用,前面已經講述的這些操作。但是,請注意字串都是不可變的。字串的方法 字串從string 模組中 繼承 了很多方法,這裡只介紹一些特別有用的。1 find find 方法可以在乙個較長的字串中查詢...
python 基礎學習筆記(8) 裝飾器
裝飾器 裝飾器和閉包有很大的聯絡。有時你需要在不改變源 的情況下修改已經存在的函式。裝飾器的運用可以提高效率,減少重複的 裝飾器的實質是乙個函式。它把乙個函式作為輸入並且返回另乙個函式。在裝飾器中,通常使用下面這些python技巧 1.args 和 kwargs 2.閉包 3.作為引數的函式 例函式...
python基礎學習 裝飾器
學習python時,我提出過如下問題 1.裝飾器是什麼?2.乙個 符號 乙個函式名就是乙個裝飾器了?3.什麼時候要用到這是神器的工具?到底怎麼理解 怎麼應用裝飾器,在本文中概括一下自己的理解。一 先舉栗子,逐層分析 1 獲取func函式的執行時間 2 import time 3 4 這是乙個計時函式...