Python之第二十一天的努力--模块1
2021-05-04 01:27
标签:class imp 右键 找不到 ret har 本质 解释器 固定 装饰器:完美的呈现了开放封闭原则。装饰器的本质:闭包。 练习: 什么是模块:本质就是 .py文件,封装语句的最小单位。 自定义模块:实际上就是定义:.py 其中可以包括:变量定义,可执行语句,for循环,函数定义等...他们统称为模块的成员 在脚本方式运行时, 在以模块方式被导入时, 内存中:如果之前成功导入过某个模块,直接使用已经存在的模块 内置路径:安装路径:Lib PYTHONPATN:import时寻找模块路径。 sys.path:是一个路径的列表。 如果上面都找不到,就报错。 动态修改sys.path。 os.path.dirname():获取某个路径的父路径。通常用于获取当前模块的相对路径 Python之第二十一天的努力--模块1 标签:class imp 右键 找不到 ret har 本质 解释器 固定 原文地址:https://www.cnblogs.com/szheng/p/13196481.html01内容回顾与练习
def wrapper(f):
def inner(*args,**kwargs):
‘‘‘执行被装饰函数之前的操作‘‘‘
ret = f(*args,**kwargs)
‘‘‘执行被装饰函数之后的操作‘‘‘
return ret
return inner
def wrapper(f):
def inner(*args,**kwargs):
print(111)
ret = f(*args,**kwargs)
print(222)
return ret
return inner
@wrapper # func = wrapper(func)
def func():
print(‘in func‘)
func()
# 111
# in func
# 222
# 2.编写装饰器,在每次执行被装饰函数之前打印一句
# ’每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码’。
def wrapper(f):
def inner(*args,**kwargs):
print(‘每次执行被装饰函数之前都得先经过这里,这里根据需求添加代码‘)
ret = f(*args,**kwargs)
return ret
return inner
# 3.为函数写一个装饰器,把函数的返回值 +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)
# 4.请实现一个装饰器,通过一次调用是函数重复执行5次。
def wrapper(f):
def inner(*args,**kwargs):
for i in range(5):
ret = f(*args,**kwargs)
return ret
return inner
@wrapper # func = wrapper(func)
def func():
print(‘in func‘)
func()
# 5.请实现一个装饰器,每次调用函数时,将函数名以及调用此函数的时间节点写入文件中。
#
# 可用代码:
# import time
# struct_time = time.localtime()
# print(time.strftime("%Y-%m-%d %H:%M:%S",struct_time)) # 当前时间节点
# #
# def wrapper():
# pass
# def func1(f):
# print(f.__name__)
# func1(wrapper)
# 函数名通过: 函数名.__name__获取。
import time
def wrapper(f):
def inner(*args,**kwargs):
with open(‘log‘,encoding=‘utf-8‘,mode=‘a‘) as f1:
struct_time = time.localtime()
f1.write(f‘北京时间:{time.strftime("%Y-%m-%d %H:%M:%S",struct_time)}执行了{f.__name__}函数\n‘)
ret = f(*args,**kwargs)
return ret
return inner
@wrapper
def nb():
print(‘in nb‘)
nb()
time.sleep(2)
nb()
time.sleep(1)
nb()
02 模块1
自定义模块
‘‘‘
自定义模块
模块中出现的变量:for循环,if结构,函数定义..... 称为模块的成员。
‘‘‘
# 可执行语句
a = 1
print(a)
for x in range(3):
print(x)
# 函数定义
def f():
print(‘hello world‘)
f()
模块的运行方式
__name__
属性的使用
__name__
是固定的字符串:__main__
__name__
就是本模块的名字。# 定义一个函数,包含测试语句
def main():
print(a)
for x in range(3):
print(x)
f()
if __name__ == ‘__main__‘:
main()
系统导入模块的路径
# 添加a.py所在的路径到sys.path中
import sys
# sys.path.append(r‘E:\pycharm\Python世界\从0开始学Python\day14\aa‘)
# 使用相对位置找到aa文件夹
# print(__file__) # 当前文件的绝对路径
# 使用os模块获取一个路径的父路径
import os
# print(os.path.dirname(__file__) + ‘/aa‘)
sys.path.append(os.path.dirname(__file__) + ‘/aa‘)
下一篇:C/C++输入输出
文章标题:Python之第二十一天的努力--模块1
文章链接:http://soscw.com/index.php/essay/82046.html