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. ...
随机推荐
- 【JAVA】笔记(8)--- java.lang.String 精讲
String 特性: 1.String 表示字符串类型,属于引用数据类型,所以其储存的是地址: 2.java 中规定,双引号括起来的字符串是不可变的,也就说" name "永远也只 ...
- [hdu7062]A Simple Problem
称序列$\{a_{1},a_{2},...,a_{n}\}$的答案为$\min_{0\le i\le n-k}(\max_{i<j\le i+k}a_{j})$(特别的,若$n<k$ ...
- [atARC103D]Robot Arms
合法的必要条件是每个点两维坐标和奇偶性相同,同时这也是充分条件 令$d_{i}=\{2^{0},2^{1},...,2^{m-1}\}$,归纳其可以走到任意满足$|x|+|y|<2^{m}$的$ ...
- 如何利用 JuiceFS 的性能工具做文件系统分析和调优
JuiceFS 是一款面向云原生环境设计的高性能 POSIX 文件系统,在 AGPL v3.0 开源协议下发布.作为一个云上的分布式文件系统,任何存入 JuiceFS 的数据都会按照一定规则拆分成数据 ...
- 前端:WebP自适应实践
WebP介绍 WebP 是 Google 推出的一种同时提供了有损和无损两种压缩方式的图片格式,优势体现在其优秀的图像压缩算法,能够带来更小的图片体积,同时拥有更高的的图像质量.根据官方说明,WebP ...
- Python 3 快速入门 1 —— 数据类型与变量
本文假设你已经有一门面向对象编程语言基础,如Java等,且希望快速了解并使用Python语言.本文对重点语法和数据结构以及用法进行详细说明,同时对一些难以理解的点进行了图解,以便大家快速入门.一些较偏 ...
- [TopCoder2014Final]FrozenStandings 解法探究
https://vjudge.net/problem/TopCoder-13460 简要题意:给出 \(n\) 段从 \(1\) 到 \(n\) 编号的等长区间,保证区间的端点互不相同.区间可以选取其 ...
- 洛谷 P3644 [APIO2015]八邻旁之桥(对顶堆维护中位数)
题面传送门 题意: 一条河将大地分为 \(A,B\) 两个部分.两部分均可视为一根数轴. 有 \(n\) 名工人,第 \(i\) 名的家在 \(x_i\) 区域的 \(a_i\) 位置,公司在 \(y ...
- 洛谷 P6499 - [COCI2016-2017#2] Burza(状压 dp)
题面传送门 一道挺有意思的思维题(?) 首先我们假设根节点深度为 \(0\),那么 Daniel 的目标显然就是堵住一些节点使得 Stjepan 不能移动到深度为 \(k\) 的节点,Stjepan ...
- 【Workflows】 WGS/WES Mapping to Variant Calls
WGS/WES Mapping to Variant Calls - Version 1.0 htslib官网上给的一个WGS/WES的流程.关于htslib.samtools和bcftools之间的 ...