import math
#求兩個點(x1,y1),(x2,y2)之間的距離
def getdis(x1,y1,x2,y2):
return math.sqrt((x1-x2)**2 + (y1-y2)**2)
#使用閉包求距離
def getdisout(x1,y1):
def getdisin(x2,y2):
return math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2)
return getdisin
#求點分別求(10,10),(20,20) 距離原點(0,0)的距離
dis = getdis(0,0,10,10)
print("(10,10)距離原點的距離為:%g"%dis)
dis = getdis(0,0,20,20)
print("(20,20)距離原點的距離為:%g"%dis)
print("———"*20)
getdisin = getdisout(0,0)
dis1 = getdisin(10,10)
print("(10,10)距離原點的距離為:%g"%dis1)
dis1 = getdisin(20,20)
print("(20,20)距離原點的距離為:%g"%dis1)
首先,不用閉包來求倆點的距離。
利用閉包來求距離,無疑會使自己的**瞬間變得高大上。
python怎麼閉包 python的閉包
一 思考乙個問題 我們要給定乙個x,要求一條直線上x對應的y的值。公式是y kx b。我們需要用k,b來確定這條直線,則我們實現的函式應該有3個引數 defline k,b,x print k x b line 1,3,4 line 1,3,5 line 1,3,6 可以看到,我們每次修改x都要重新...
python 閉包 Python中的閉包
一 什麼是閉包 在談之前,我們先來說說作用域,變數的作用域無非就兩種 全域性變數和區域性變數。函式內部可以直接讀取全域性變數,但是在函式外部無法讀取函式內部的區域性變數。出於種種原因,我們有時候需要獲取到函式內部的區域性變數。但是,正常情況下,這是辦不到的!只有通過變通的方法才能實現。於是就引入了閉...
python閉包的條件 python閉包
python閉包 閉包的條件 1.閉包函式必須返回乙個函式物件 2.閉包函式內部的函式必須引用外部的函式的變數,一般不能引用全域性的變數 裡面函式的返回值可有可無 閉包格式 def 外層函式 引數 def 內層函式 print 內層函式執行 引數 return 內層函式 內層函式的引用 外層函式 傳...