python15day
昨日回顾
装饰器:完美的呈现了开放封闭原则。本质:闭包。
def wrapper(f):
def inner(*args,**kwargs):
'''在执行被装饰函数之前,想写什么代码写什么代码'''
ret=f(*args,**kwargs)
'''执行被装饰函数之后的操作'''
return inner
return inner
练习题
#练习:为函数写一个装饰器,把函数的返回值+100,再返回
def wrapper(f):
def inner(*args,**kwargs):
ret = f(*args, **kwargs)
return ret+100
return inner @wrapper
def func():
return 7 result=func()
print(result)
#练习:为函数写一个装饰器,一次调用执行五次
def wrapper(f):
def inner(*args,**kwargs):
for i in range(5):
f(*args, **kwargs)
return inner @wrapper
def func():
print('in func')
今日内容
自定义模块
- 什么是模块:一个.py就是一个模块,封装语句的最小单位
- 不宜过大,便于维护
- 自定义模块:实际上就是在定义.py文件,其中可以包含:for、if、函数定义等,统称模块的成员
模块的运行方式
- 脚本方式:直接用解释器执行\pycharm中右键运行
- 模块方式:被其他的模块导入。为导入它的模块提供资源(函数定义、类定义等)。
'__name__'的使用- 在脚本方式运行时,
'__name__'是固定的字符串
- 在脚本方式运行时,
常用模块:time、datatime、random
系统导入模块的路径
内存中:如果之前成功导入过某个模块,直接引用已经存在的模块。
内置路径中:lib中
sys.path:一个路径的列表,没提供源码,c语言写的直接集成到解释器。
#查看sys.path的内容,并追加a.py
import sys
print(sys.path)
sys.path.append(r'E:\Py Project\day15\a')
print(sys.path)
#使用相对位置找到aa文件夹
#__file__:当前文件的绝对路径
#使用os模块获取一个路径的父路径
import os
print(os.path.dirname(__file__)+'/a') #E:/Py Project/day15/a
sys.path.append(os.path.dirname(__file__)+'/a')
三个路径都找不到,就报错
if __name__ == '__main__':可以快速生成(main+回车)导入模块的方式
- import xxx(必须模块名)
- from xxx import xxx
- from xxx import *
解决名称冲突的问题
- 用import xxx导入
- 自己避免使用同名
- 使用别名alias,import xxx as aaa(改名成了aaa)
相对导入,两模块在同一个项目里,把一个模块导入另一个。
常用模块random:
- 此模块提供了和随机数获取相关的方法
- random.random():获取[0.0,1.0)内浮点数
- random.randint(a,b):获取[a,b]范围整数
- random.uniform(a,b):获取[a,b]范围内浮点数
- random.shuffle(x):把参数指定的数据中的元素打乱
- random.sample(x,k):从x中取k个数据组成一个列表
- ……
- 此模块提供了和随机数获取相关的方法
函数总结
- 什么是函数?减少重复性,增强可读性
- 函数的结构?def 函数名():
- 函数的执行调用:函数名()
- 函数的返回值,没有return返回None,返回多个值元组形式。
- 参数:
- 形参(位置参数、默认参数、万能参数、仅限关键字参数)
- 实参(位置参数、关键字参数、混合参数(位置参数一定在前面,一一对应))
- *的魔性用法:定义聚合、调用打散
- 空间角度:内置名称空间、全局、局部
- 作用域:全局作用域、局部作用域
- 取值顺序和加载顺序
- 函数的嵌套
- global:在局部名称空间声明一个全局变量、在局部修改全局变量
- nonlocal
- 函数名的应用:指向的就是个内存地址,是个变量
- 函数的三大器
- 迭代器
- 生成器
- 装饰器:闭包
- 内置函数
今日总结
- 模块
- 函数
代码总行数1951+91=2042行
python15day的更多相关文章
随机推荐
- 【LeetCode】915. Partition Array into Disjoint Intervals 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/partitio ...
- Laravel 使用 maatwebsite/Excel 3.1 实现导入导出的简单方法
官方文档 https://docs.laravel-excel.com/3.1/getting-started git地址 https://github.com/maatwebsite/Laravel ...
- 【C#】C#中使用GDAL3(三):Windows下编译插件驱动
转载请注明原文地址:https://www.cnblogs.com/litou/p/15720236.html 本文为<C#中使用GDAL3>的第三篇,总目录地址:https://www. ...
- Java初学者作业——编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额。
返回本章节 返回作业目录 需求说明: 编写Java程序, 实现根据用户购买商品总金额, 计算实际支付的金额及所获得的购物券金额. 购买总金额达到或超过 1000元,按 8折优惠,送 200元的购物券: ...
- Zookeeper基础教程(二):Zookeeper安装
上一篇说了,一个Zookeeper集群一般认为至少需要3个节点,所以我们这里安装需要准备三台虚拟机: # 192.168.209.133 test1 # 192.168.209.134 test2 # ...
- Linux 使用 tail 命令查看文件内容
使用方法: $ tail --help 用法:tail [选项]... [文件]... 以标准输出的形式打印文件的最后10行内容: 如果不指定文件,或者文件为"-",则从标准输入中 ...
- hisql 高级功能数据检测将错误数据拦截在系统外 一
hisql github源码下载 git clone https://github.com/tansar/HiSql.git 在设计第二范式数据库时经常会把可能重复的数据单独做一种表关联,但是在写入表 ...
- Linux安装Collabora Online让NextCloud支持Office在线编辑
https://www.xiaoz.me/archives/10865 NextCloud可通过插件实现在线编辑Office文档,不过前提是需要依赖于Collabora Online服务,记录一下操作 ...
- nginx高并发配置详解
https://www.cnblogs.com/liqiu/p/3152206.html 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 ...
- nginx + tomcat 单个域名及多个域名的配置
//nginx + tomcat 单个域名及多个域名的配置//修改nginx的配置文件,linux默认路径 /usr/local/nginx/conf/nginx.conf //prot为8082的w ...