我觉得是这样理解
f = cals_sum([1,2,3,4]) => 执行的结果是return lazy_sum这个函数,而此时lazy_sum并没有执行,所以返回的不是内部函数执行的结果
f() = cals_sum(lazy_sum([1,2,3,4])) 就要执行内部函数了,内部函数执行完了,把值返回给lazy_sum,再返回给外层函数
f = cals_sum([1,2,3,4]) => 执行的结果是return lazy_sum这个函数,而此时lazy_sum并没有执行,所以返回的不是内部函数执行的结果
f() = cals_sum(lazy_sum([1,2,3,4])) 就要执行内部函数了,内部函数执行完了,把值返回给lazy_sum,再返回给外层函数
2018-01-23
class Person(object):
__count = 0
def __init__(self, name):
self.name = name
Person.__count += 1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print 'AttributeError'
__count = 0
def __init__(self, name):
self.name = name
Person.__count += 1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except AttributeError:
print 'AttributeError'
2018-01-22
把老师提供的作为“反面教材”的代码,复制粘贴到NOTEPAD++保存为.py格式,用Windows的命令提示符运行
结果返回了<function f at 0x055DD870> <function f at 0x055DD830> <function f at 0x055DD8F0>,即函数的位置,而非预料中的【9,9,9】(摊手)
结果返回了<function f at 0x055DD870> <function f at 0x055DD830> <function f at 0x055DD8F0>,即函数的位置,而非预料中的【9,9,9】(摊手)
2018-01-22
capitalize() 首字母大写,其余全部小写
upper() 全转换成大写
lower() 全转换成小写
title() 标题首字大写,如"i love python".title() "I love python"
upper() 全转换成大写
lower() 全转换成小写
title() 标题首字大写,如"i love python".title() "I love python"
2018-01-22
def sum(x, y, f):
x = f(x)
y = f(y)
if x is not None and y is not None:
return x+y
else:
return None
def sqrtF(x):
if x > 0:
return math.sqrt(x)
else:
print("根号下必须大于0")
return None
x = f(x)
y = f(y)
if x is not None and y is not None:
return x+y
else:
return None
def sqrtF(x):
if x > 0:
return math.sqrt(x)
else:
print("根号下必须大于0")
return None
2018-01-22
import time
def performance(f):
def fn(*args,**kw):
print 'call '+f.__name__+'()in'
print time.time()
return f(*args,**kw)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
需要结合百度查下python time的用法才能知道
def performance(f):
def fn(*args,**kw):
print 'call '+f.__name__+'()in'
print time.time()
return f(*args,**kw)
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
需要结合百度查下python time的用法才能知道
2018-01-21
print filter(lambda s:s and len(s.strip()) > 0, ['test', None, '', 'str', ' ', 'END'])
哈哈 之前的程序是只要结果正确就行,现在结果正确,不使用s变量都不成,习惯使用x结果显示没有匹配到s
哈哈 之前的程序是只要结果正确就行,现在结果正确,不使用s变量都不成,习惯使用x结果显示没有匹配到s
2018-01-21
成功搞定
import time
def performance(func):
def f(*args, **kw):
print 'call %s() in %s' %(func.__name__ ,time.time())
return func(*args, **kw)
return f
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
import time
def performance(func):
def f(*args, **kw):
print 'call %s() in %s' %(func.__name__ ,time.time())
return func(*args, **kw)
return f
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
2018-01-21
def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f())
return fs
(f1, f2, f3) = count()
print f1, f2, f3
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f())
return fs
(f1, f2, f3) = count()
print f1, f2, f3
2018-01-21
还不懂的看着个吧,一定会看懂的。http://www.jb51.net/article/86383.htm
2018-01-21