# eval与exec的区别:eval 有返回值,而 exec没有返回值

# 这两个函数都是执行python语句,注意:里面传的是字符串的格式

a = eval('1+2')
a # 这里a有值
3 b = exec('1+2')
b # 这里b没有值 def printstr():
print('hello word')
return 1 eval('printstr()')
hello word
1 #可以返回参数 exec('printstr()')
hello word
# 这里就没有返回

# 变量的作用范围

参数为不可变的,对外部的变量就没影响
参数为可变的,对外部的变量就影响

a = 100
def func(a):
a+=1
return a
func(a)
101
a # a的值并没有改变
100 list1 = []
def add(list1):
list1.append(1)
return list1 add(list1)
[1]
list1 # 改变了
[1]

# 函数默认参数“默认参数必须指向 不变对象!

>>> def add_end(L=[]):
... L.append('END')
... return L
... >>> print(add_end([1,2,3]))
[1, 2, 3, 'END']
>>> print(add_end(['x','y','z']))
['x', 'y', 'z', 'END']
>>> print(add_end())
['END']
>>> print(add_end())
['END', 'END']
>>> print(add_end()) # 这是默认参数为可变对象导致的,因为可以变对象参数的作用范围是全局的
['END', 'END', 'END'] #修改方法 >>> def add_end(L=None):
... if L==None:
... L= []
... L.append('END')
... return L
...
>>> print(add_end([1,2,3]))
[1, 2, 3, 'END']
>>> print(add_end(['x','y','z']))
['x', 'y', 'z', 'END']
>>> print(add_end())
['END']
>>> print(add_end())
['END']
>>> print(add_end())
['END']

最新文章

  1. Windows 10 技术预览版9926 “未知源”引起系统休眠后自启的解决办法
  2. percona-toolkit 之 【pt-online-schema-change】说明
  3. 适配布局-ios
  4. uva 11357 Matches
  5. thinkjs——修改where默认条件为or
  6. 第五周&第六周
  7. [转]Asp.Net MVC 扩展联想控件
  8. bzoj 2242 [SDOI2011]计算器(数论知识)
  9. (转载)PHP 提示和技巧
  10. linux用户管理最常用的三个文件说明(不完整版)
  11. iOS核心应用对象
  12. x264中的帧类型、条带类型、数据分区(data partition)
  13. 6、50道JAVA基础编程练习题跟答案
  14. Java 六种异常处理的陋习(转)
  15. Openresty 数据共享API.Data Sharing within an Nginx Worker
  16. Java之继承深刻理解
  17. Python 基于Python及zookeeper实现简单分布式任务调度系统设计思路及核心代码实现
  18. Docker for windows : 安装Redis
  19. 初学python之路-day05
  20. Linux的命名空间详解--Linux进程的管理与调度(二)【转】

热门文章

  1. kibana 查询例子
  2. String和ByteBuffer互转
  3. HDU 1260 Tickets (动态规划)
  4. 小菜鸟之java异常
  5. js注册实现
  6. JS图片轮播[左右轮播
  7. git 常用命令语句(个人笔记)
  8. 部署Dashboard,监控应用
  9. mybatis-generator遇到到的问题
  10. js 格式化 json 字符串