Python3 (入门3) 函数
来源:互联网 发布:安卓网络配置文件路径 编辑:程序博客网 时间:2024/05/16 10:55
原文: http://blog.csdn.net/Rozol/article/details/69242050
- 函数
- 匿名函数
- 位置参数 和 关键字参数 的混合使用
- 变量
- 修改全局变量
- 调用自定义模块
- 动态导入模块
- 函数
函数
匿名函数
位置参数 和 关键字参数 的混合使用
变量
修改全局变量
调用自定义模块
动态导入模块
#coding=utf-8# function.py 函数import sys # 导入模块sys.setrecursionlimit(5000) # 修改函数递归次数限制(默认为1000)# === 函数 ===def function1(): # 无参函数 print("×参数 ×返回") # 无返回def function2(arg1, arg2): # 带参函数(位置参数) return "√参数 √返回" # 有返回def function2_1(arg1, arg2): return arg1, arg2 # 元组形式返回多个值def function3(*args): # 不定长参数(位置参数),把位置参数(*args)转成元组 print("function3: ", args) def function3_1(**kwargs): # 不定长参数(关键字参数), 把关键字参数(**kwargs)转成字典 print("function3_1: ", kwargs) def function4(arg1 = 5): # 缺省参数(不传参将使用默认值)(注意:Python不支持函数重载,该方式解决了重载问题) print("function4:%s"%arg1)def function5(arg1): print("function5:%d"%arg1) if(arg1 >= 10): return arg1+=1 return function5(arg1) # 递归函数(默认递归次数限制为1000), 递归层次太多可能会导致栈溢出(递归效率不高)none = lambda : print("none") # 匿名函数 (无参 无返回)add = lambda arg1, arg2: arg1 + arg2 # 匿名函数 (带参 有返回)# === 位置参数 和 关键字参数 的混合使用 ===def function6(arg, *args): print("function6: ", arg) print("function6: ", args)def function7(arg, age=21, **kwargs): print("function7: ", arg) print("function7: ", age) print("function7: ", kwargs)def function8(arg, age=21, *args, **kwargs): # 位置参数 只能写在 关键字参数 前面 print("function8: ", arg) print("function8: ", age) print("function8: ", args) print("function8: ", kwargs)# === 变量 ===global_var = 123 # 全局变量,作用域整个程序global_var_c = 321def localvariable(): local_var = 456 # 局部变量, 作用域在子程序 global_var_c = 123 # 子程序不能修改全局变量(引用(如:list,class)除外) print("global_var: {}; global_var_c: {}; local_var: {}".format(global_var, global_var_c, local_var)) # => 123, 123, 456localvariable()print("global_var: {}; global_var_c: {}".format(global_var, global_var_c)) # => 123, 321# === 修改全局变量 ===global_list = {"num" : 123}def localvariable_cg(): global_list["num"] = 321 print("global_list: {}".format(global_list)) # => {'num': 321}localvariable_cg()print("global_list: {}".format(global_list)) # => {'num': 321}# === 修改全局变量的作死写法 (不建议使用这种写法, 容易造成全局变量使用混乱) ===global_err = 123def localvariable_err(): global global_err global_err = 321 print("global_err: {}".format(global_err)) # => 321localvariable_err()print("global_err: {}".format(global_err)) # => 321if __name__ == "__main__": # --- 普通函数 --- function1() print(function2("a", "b")) print(function2_1("a", "b")) function3(1, 2, 3) function3(*[1, 2, 3]) function3_1(a="A", b="B", c="C") function3_1(**{"a":"A", "b":"B", "c":"C"}) function4(3) function5(1) # --- 匿名函数 --- none() print(add(1, 5)) print((lambda arg1, arg2: arg1 + arg2)(1, 2)) # 匿名函数的另一种调用方式 # --- 位置参数 和 关键字参数 的混合使用 --- function6(1, 2, 3, 4, 5) function6(1, *[2, 3, 4, 5]) function7(1, num=12, age=21) function8(1, 22, 2, 3, num=12)# ===========================================================# === 调用自定义模块 ===# 导入模块并调用 (三种导入模块方式,选择其中一种)import time # 第一种, 引入单个模块import time as t # 引入并重命名import time, calendar # 第二种, 引入多个模块from mymodule import myfunction # 第三种, 导入模块指定函数(*引入所有)print(myfunction())# === 动态导入模块 ===import importlibmodulename = "os"# 方式1obj = __import__(modulename) # 不推荐# 方式2obj = importlib.import_module(modulename) # 推荐使用print(obj.getcwd())
以下是自定义的模块
#coding=utf-8# mymodule.py 自定义模块def myfunction(): return "myFunction"# 避免外界调用函数时运行了测试代码if __name__ == "__main__": print(myfunction())
阅读全文
0 0
- Python3 (入门3) 函数
- Python3 (入门3) 函数
- python3入门之函数
- python3入门之几个函数变化
- [Python3入门与进阶]8 函数
- 1.2.3python3函数
- Python3 入门
- python3 入门 (三) 函数与lambda表达式、闭包
- python3 函数
- Python3 函数
- Python3函数
- python3 函数
- Python3函数
- Python3 函数
- python3函数
- Python3 函数
- Python3 函数
- Python3 函数
- maven私服的搭建
- INFO [Timer-282] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading.....
- 中间件的实现原理
- Java面向对象-String类作业一字符串转数组
- Nginx为什么比Apache Httpd高效:原理篇
- Python3 (入门3) 函数
- 非IE内核浏览器支持Active X控件
- codeforces 420-C. Okabe and Boxes
- 其他协议
- Oracle数据库(数据字典、表空间、表的创建、视图)
- JS跳转页面
- 常用正则
- ubuntu14.04配置darknet遇到cannot find -lcuda解决办法
- 20171010联通流量悬浮球导致的浏览器功耗偏大