filter 現在返回的是指向結果為True的元素的地址域。
Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true
Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true
2019-06-24
performance函數形成閉包,返回perf_decorator函數;perf_decorator函數形成閉包,返回wrapper函數;wrapper函數返回r變量,r變量調用了perf_decorator函數的參數f,最終performance函數對factorial函數進行裝飾,unit變量 等于 'ms'字符串,對變量t進行判斷,返回合適的時間,及factorial函數結果。理解是這么理解,讓我寫又不太能寫出來。。。
2019-06-18
import math
def is_sqr(x):
return math.sqrt(x)%1 ==0
print (list(filter(is_sqr, range(1, 101))))
def is_sqr(x):
return math.sqrt(x)%1 ==0
print (list(filter(is_sqr, range(1, 101))))
2019-06-13
def format_name(s):
return s[0].upper() + s[1:].lower()
s = ['adam', 'LISA', 'barT']
print (list(map(format_name, ['adam', 'LISA', 'barT'])))
注意了python 3 里面需要加list,map會報錯
return s[0].upper() + s[1:].lower()
s = ['adam', 'LISA', 'barT']
print (list(map(format_name, ['adam', 'LISA', 'barT'])))
注意了python 3 里面需要加list,map會報錯
2019-06-13
Raffi Khatchadourian 對 Andrew Edgecombe 答案的補充:
對于 1),你應當再加上“ 方法在 C++ 中是被稱為成員函數”。因此,在 C++ 中的“方法”和“函數”的區別,就是“成員函數”和“函數”的區別。此外,諸如 Java 一類的編程語言只有“方法”。所以這時候就是“靜態方法”和“方法”直接的區別。
對于2),你應當補上方法可以操作已在類中聲明的私有實例(成員)數據。其他代碼都可以訪問公共實例數據。
Aaron 的回答:
方法和對象相關;
函數和對象無關。
Java中只有方法,C中只有函數,而C++里取決于是否在類中。
對于 1),你應當再加上“ 方法在 C++ 中是被稱為成員函數”。因此,在 C++ 中的“方法”和“函數”的區別,就是“成員函數”和“函數”的區別。此外,諸如 Java 一類的編程語言只有“方法”。所以這時候就是“靜態方法”和“方法”直接的區別。
對于2),你應當補上方法可以操作已在類中聲明的私有實例(成員)數據。其他代碼都可以訪問公共實例數據。
Aaron 的回答:
方法和對象相關;
函數和對象無關。
Java中只有方法,C中只有函數,而C++里取決于是否在類中。
2019-06-09
關于 函數和方法 的區別
主要決定于是否與對象有關,能否離開對象使用,能否訪問類內所有屬性。
(來自 Andrew Edgecombe ):
函數是一段代碼,通過名字來進行調用。它能將一些數據(參數)傳遞進去進行處理,然后返回一些數據(返回值),也可以沒有返回值。
所有傳遞給函數的數據都是顯式傳遞的。
方法也是一段代碼,也通過名字來進行調用,但它跟一個對象相關聯。方法和函數大致上是相同的,但有兩個主要的不同之處:
方法中的數據是隱式傳遞的;
方法可以操作類內部的數據(請記住,對象是類的實例化–類定義了一個數據類型,而對象是該數據類型的一個實例化)
主要決定于是否與對象有關,能否離開對象使用,能否訪問類內所有屬性。
(來自 Andrew Edgecombe ):
函數是一段代碼,通過名字來進行調用。它能將一些數據(參數)傳遞進去進行處理,然后返回一些數據(返回值),也可以沒有返回值。
所有傳遞給函數的數據都是顯式傳遞的。
方法也是一段代碼,也通過名字來進行調用,但它跟一個對象相關聯。方法和函數大致上是相同的,但有兩個主要的不同之處:
方法中的數據是隱式傳遞的;
方法可以操作類內部的數據(請記住,對象是類的實例化–類定義了一個數據類型,而對象是該數據類型的一個實例化)
2019-06-09
def new_fn(f):
def fn(x):
print 'call'+f.__name__+'()'
return f(x)
return fn
@new_fn
def f1(x):
return x*2
@new_fn
def f2(x):
return x*x
@new_fn
def f3(x):
return x*x*x
print f1(5)
print f2(5)
print f3(5)
def fn(x):
print 'call'+f.__name__+'()'
return f(x)
return fn
@new_fn
def f1(x):
return x*2
@new_fn
def f2(x):
return x*x
@new_fn
def f3(x):
return x*x*x
print f1(5)
print f2(5)
print f3(5)
2019-06-01
def add(x, y, f):
return f(x) + f(y)
def f(s):
a = s**0.5
return a
print(add(25, 9, f))
return f(x) + f(y)
def f(s):
a = s**0.5
return a
print(add(25, 9, f))
2019-06-01
def performance(unit):
def f1(f):
@functools.wraps(f)
def f2(n):
print 'call',f1.__name__ + '() in', f(n),unit
return f(n)
return f2
return f1
def f1(f):
@functools.wraps(f)
def f2(n):
print 'call',f1.__name__ + '() in', f(n),unit
return f(n)
return f2
return f1
2019-05-24
def performance(unit):
def f1(f):
def f2(n):
print 'call',f.__name__ + '() in', f(n),unit
return f1(f)
return f2
return f1
def f1(f):
def f2(n):
print 'call',f.__name__ + '() in', f(n),unit
return f1(f)
return f2
return f1
2019-05-24