def make_average():
series =[]
def averager(new_value):
series.append(new_value)
total = sum (series)
return total/len(series)
return averager
avg = make_average()
print(avg(10))
print(avg(11))
print(avg(12))
print(avg.__code__.co_varnames)
print(avg.__code__.co_freevars)
print(avg.__closure__)
print(avg.__closure__[0].cell_contents)
def make_averager1():
count =0
total=0
def averager1(new_value):
nonlocal count ,total
count+=1
total+=new_value
return total/count
return averager1
avg1=make_averager1()
print(avg1(10))
print(avg1(11))
print(avg1(12))
print(avg1.__code__.co_varnames)
print(avg1.__code__.co_freevars)
print(avg1.__closure__)
print(avg1.__closure__[0].cell_contents)
10.0
10.5
11.0
('new_value', 'total')
('series',)
(<cell at 0x7fbb7f1fb978: list object at 0x7fbb7d5485c8>,)
[10, 11, 12]
10.0
10.5
11.0
('new_value',)
('count', 'total')
(<cell at 0x7fbb7f174e58: int object at 0xa69de0>, <cell at 0x7fbb7f174798: int object at 0xa6a1a0>)
3
计算移动平均值2
猜你喜欢
转载自blog.csdn.net/qq_41000421/article/details/84637300
今日推荐
周排行