Python sum函数的改进(用到的知识:静态变量、list、可变长参数等)
2015-01-18 18:47
288 查看
这些天来,一直在看think python:How to think like a computer scientist 这本书。学到其中关于元组那一章,作者布置了一道题目,因为python 内置的函数sum()只能接受两个参数,利用学习的可变长参数知识,自定义一个sum_all 函数。
函数可以接受不定长参数,以*打头的参数会gather所有参数到一个元组上。
轮到自己编写的时候发现static不是关键字,于是搜索了一下
在这里找到了一些方法,其中评论中说的利用vars(s)替代s.__dict__也是值得注意的
真正的static替代方案其实就是三句话
其中sum_all是函数名称,给他划定范围,a就是那个static变量。整体的函数如下:
运行截图如下
另外在StackOverFlow上也有关于这个说法点击打开链接
函数可以接受不定长参数,以*打头的参数会gather所有参数到一个元组上。
def print_all(*args): print args print_all(1,2.0,'apple') print_all(1)
轮到自己编写的时候发现static不是关键字,于是搜索了一下
在这里找到了一些方法,其中评论中说的利用vars(s)替代s.__dict__也是值得注意的
真正的static替代方案其实就是三句话
if vars(sum_all).has_key("a"): sum_all.a += t[e] else: sum_all.a = 0
其中sum_all是函数名称,给他划定范围,a就是那个static变量。整体的函数如下:
def sum_all(*t):
sum_all.a = 0
for e in range(len(t)):
if vars(sum_all).has_key("a"): sum_all.a += t[e] else: sum_all.a = 0
return sum_all.a
运行截图如下
另外在StackOverFlow上也有关于这个说法点击打开链接
相关文章推荐
- Python class 初始化参数为 list 等 可变类型时遇到的问题
- python函数参数(可变参数tuple和关键字参数list)
- 黑马程序员_Java第17天知识总结_集合框架的工具类_Collections_Arrays_将数组变成list集合_集合变数组_高级for循环_可变参数
- Python 函数默认参数不能使用可变对象,如List,dict
- python知识整理--议可变对象和不可变对象以及str、list、tuple、dict、set
- 可变参数列表(va_list,va_arg,va_copy,va_start,va_end)
- 有关va_list和vsnprintf输出函数的问题(可变参数)
- Python的可变长参数
- 关于C中函数的可变参数va_list...(转)
- python把list的元素依序当成函数的参数
- 如何获取函数的可变参数(va_list, va_start, va_arg, va_end)
- 使用va_list编写可变参数的函数
- 关于C中函数的可变参数va_list...
- 详解_C语言可变参数_va_list和_vsnprintf及printf实现
- python 复习之 可变参数
- java7新特性 当使用可变并且非具体类型形式化参数的方法时候,改进警告与报错的提示
- va_list 可变参数变量
- 有关va_list和vsnprintf输出函数的问题(可变参数)
- Python中函数的参数定义和可变参数
- Silverlight制作一个简单的菜单1-用到的知识讲解 xml数据读取,事件如何传递参数