Python:函数2——变量的作用域 、 返回值
来源:互联网 发布:大学生程序员如何赚钱 编辑:程序博客网 时间:2024/06/05 19:57
一、函数和过程
一般来讲,函数是有返回值的,过程是简单的、特殊并且没有返回值得。
python严格来说只有函数没有过程:因为当没有return时,默认返回None
二、返回值
python返回值得类型为动态的!形参类型也是动态的
返回多个值:
>>> def back():... return [1, 'xiaoyi', 3.14]... >>> back()[1, 'xiaoyi', 3.14]>>> def back():... return 1, 'xiaoyi', 3.14... >>> back()(1, 'xiaoyi', 3.14)
三、变量的作用域
也就是变量的可见性!
局部变量、全局变量:函数里边的变量是局部变量;
final_price、price、rate是discounts里的局部变量
原理:python在调用这个函数的时候,利用栈进行存储,把函数所需要的代码和变量都扔到这个栈里边去,当执行完这个函数的时候,这个函数会被自动的删除,对应栈的数据会被自动的清空,所以函数外是无法访问到函数内的变量的
阴影部分的定义的变量old_price、rate、new_price是全局变量,函数内部可以访问全局变量
在函数内去试图修改全局变量的话,python会自动创建一个新的局部变量代替,名字跟全局变量是一模一样的(屏蔽)注意,在函数内修改全局变量前访问全局变量会报错。
>>> count = 5>>> def MyFunc():... print(count)... count = 10... print(count)... >>> MyFunc()Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 2, in MyFuncUnboundLocalError: local variable 'count' referenced before assignment>>>
因此建议不要试图在函数内去修改全局变量!也有解决办法:使用global关键字
>>> def MyFunc():... global count... count = 10... print(10)... >>> count = 5>>> MyFunc()10>>> count10
>>> count10>>> def MyFunc():... print(count)... global count... count = 10... print(count)... <stdin>:3: SyntaxWarning: name 'count' is used prior to global declaration>>> count = 5>>> MyFunc()510>>>
0 0
- Python:函数2——变量的作用域 、 返回值
- python里使用vars()返回当前局部作用域的所有成员函数和成员变量
- python函数变量的作用域
- python --- 变量和函数的作用域
- python函数-变量作用域
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- 函数返回值—返回局部变量
- Python模块中的变量和函数的作用域
- javascript和python函数中变量作用域的区别
- HibernateSQL查询 addScalar()或addEntity()
- Nginx源码编译安装及配置文件解读
- 将某一个文件一分为二,分别保存在两个临时文件中
- TensorFlow实战——DNN——MNIST数字识别
- ubuntu有线无法上网
- Python:函数2——变量的作用域 、 返回值
- 一个自由定制可展开的的Material Design风格FloatingActionButton
- 剑指offer(java代码)——用两个栈实现队列
- Git学习记录
- C语言编写班级花名册(链表版)
- Java\Android进阶代码提炼师之代码重构原则
- Android中的跨进程通信AIDL、Binder源码详解
- ubuntu开机自动运行用Qt写的程序
- HashTable和HashMap的区别详解