Python模块和函数
一.基础
#导入模块
import xxx #调用 xxx.dd()
from xxx import xx as dd #导入某个函数,as给函数加别名,调用xx()
#包
mkdir sources
touch sources/xx.py
touch sources/init.py #可以是空的
from sources import xx
xx.get_name('cc')
from collections import defaultdict
periodic_table = defaultdict(int)
periodic_table['Lead'] #默认给所有键赋值0
def no_idea():
return 'Huh?'
bestiary = defaultdict(no_idea) #传递的是函数
bestiary = defaultdict(lambda: 'Huh?') #lambda也可以默认值
#标准函数
def hello():
print("dasd")
user_name(a='xx',b='dd') #位置参数和关键字参数、
def user_name(a,b='xx') #默认值
global a #将a转换为全局变量
a = 'xx' #赋值
return xx #返回值,可以是变量等
name = user_name('xx','dd') #字符串拼接
def user_name(*a) #a将为一个空元组,可以存储任意多个实参
def user_name(b,c,*a) #填充前2个,再全部填充到后面
def user_name(b,c,**a) #a为字典,可以age='13',name='23'方式传进字典
help(user_name) #打印文档字符串解释
print(echo.__doc__) #得到文档字符串
#返回函数的名称和文档
fuction.__name__
fuction.__doc__
#lambda,冒号以后为函数部分,stairs是第一个参数
edit_story(stairs, lambda word: word.capitalize() + '!')
#命名空间
#global
print(locals()) #返回一个局部命名空间内容的字典
print(globals()) #返回全局的
print(id(name)) #打印唯一id值
#表达式
print(getAnswer(random.randint(1, 9)))
#函数内修改全局变量
def xx():
global cc
cc = 'sdas'
#闭包是一个可以由另一个函数动态生成的函数,并且可以改变和存储函数外创建的变量的值。
def knights2(saying):
def inner2():
return "We are the knights who say: '%s'" % saying
return inner2
def rlt(v):
def product(num):
return num ** v
return product
square = rlt(2)
cube = rlt(3)
print(square(2), cube(2)) # 4, 8
二.特殊函数
#生成器 不会记录在内存里,而是用快捷方式记录,并且记录上一次的位置,返回下一个值
sum(range(1,101))
def my_range(first=0, last=10, step=1):
number = first
while number < last:
yield number
number += step
ranger = my_range(1,5)
for x in ranger: #可以对它进行迭代
#装饰器 不改变源码的情况下修改已存在函数。把一个函数作为输入并返回另一个函数。
def document_it(func):
def new_function(*args, **kwargs):
print('Running function:', func.__name__)
print('Positional arguments:', args)
print('Keyword arguments:', kwargs)
result = func(*args, **kwargs)
print('Result:', result)
return result
return new_function
def add_ints(a, b):
return a + b
cooler_add_ints = document_it(add_ints) #人工赋值
cooler_add_ints(3, 5)
#装饰器可以直接写在要被装饰的函数前面,可以有多个,按顺序执行
@document_it
def add_ints(a, b):
return a + b
add_ints(3, 5)
#命名空间
locals() 返回一个局部命名空间内容的字典 #只能函数内打印
globals() 返回一个全局命名空间内容的字典
#特殊
function.__name__ #函数名称
function.__doc__ #函数文档
__main__ #主程序
Python模块和函数的更多相关文章
- Python模块与函数
python的程序由包(package).模块(module)和函数组成.模块是处理某一类问题的集合,模块由函数和类组成,包是由一系列模块组成的集合.包必须至少包含一个__init__.py文件,该文 ...
- 嵌入Python | 调用Python模块中有参数的函数
开发环境Python版本:3.6.4 (32-bit)编辑器:Visual Studio CodeC++环境:Visual Studio 2013 需求说明前一篇<在C++中嵌入Python|调 ...
- 嵌入Python系列 | 调用Python模块中无参数函数
开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...
- Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函数 os模块 hashlib模块 platform模块 csv模块
Python第十一天 异常处理 glob模块和shlex模块 打开外部程序和subprocess模块 subprocess类 Pipe管道 operator模块 sorted函 ...
- 自学Python之路-Python基础+模块+面向对象+函数
自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python 1.1 自学Python1.1-简介 1.2 自学Python1.2-环境的 ...
- python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性
python inspect 模块 和 types 模块 判断是否是方法,模块,函数等内置特殊属性 inspect import inspect def fun(): pass inspect.ism ...
- 嵌入Python | 调用Python模块中无参数的函数
开发环境 Python版本:3.6.4 (32-bit) 编辑器:Visual Studio Code C++环境:Visual Studio 2013 需求说明 在用VS2013编写的Win32程序 ...
- python学习笔记十——模块与函数
第五章 模块与函数 5.1 python程序的结构 函数+类->模块 模块+模块->包 函数+类+模块+包=Python pyth ...
- python协程函数、递归、匿名函数与内置函数使用、模块与包
目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a. ...
随机推荐
- ECharts + jsp 图表
... <%@ page language="java" pageEncoding="UTF-8"%> <%@page import=&quo ...
- redis集群安装搭建
vi redis-6379.conf #包含通用配置 include "/usr/local/redis/conf/redis-common.conf" pidfile &qu ...
- [cf1137F]Matches Are Not a Child's Pla
显然compare操作可以通过两次when操作实现,以下仅考虑前两种操作 为了方便,将优先级最高的节点作为根,显然根最后才会被删除 接下来,不断找到剩下的节点中(包括根)优先级最高的节点,将其到其所在 ...
- [loj2473]秘密袭击
容易发现答案即$\sum_{S}\sum_{u=1}^{W}[u\le val(S)]=\sum_{u=1}^{W}\sum_{S}[u\le val(S)]$,那么可以枚举权值$u$,并将点权$va ...
- vue属性绑定不能用双括号表达式
- .Net Core中使用ElasticSearch(二)
.Net的ElasticSearch 有两个版本,Elasticsearch.Net(低级) 和 NEST(高级),推荐使用 NEST,低级版本的更灵活,水太深 把握不住.有个需要注意,使用的版本号必 ...
- vue3 学习笔记(九)——script setup 语法糖用了才知道有多爽
刚开始使用 script setup 语法糖的时候,编辑器会提示这是一个实验属性,要使用的话,需要固定 vue 版本. 在 6 月底,该提案被正式定稿,在 v3.1.3 的版本上,继续使用但仍会有实验 ...
- Kruskal 重构树小记
其实也不是多难的知识点吧--学了一个中午+半个下午就把它学会了(做过那道 jxd 作业 CF571D 的应该比较好理解) Kruskal 重构树大概就是在正常 Kruskal 的时候,对于两个需要连边 ...
- DirectX12 3D 游戏开发与实战第十一章内容
仅供个人学习使用,请勿转载.谢谢! 11.模板 模板缓冲区(stencil buffer)是一种"离屏"(off-screen)缓冲区,我们可以利用它来实现一些效果.模板缓冲区.后 ...
- ubuntu常见错误--Could not get lock /var/lib/dpkg/lock
ubuntu常见错误--Could not get lock /var/lib/dpkg/lock 通过终端安装程序sudo apt-get install xxx时出错: E: Could ...