标签:pytho 需要 直接 指定 rom 解决 模块名 目的 rand
def wrapper():
pass
def aa(f):
print(f.__name__)
aa(wrapper)
本质就是py文件,封装语句的最小单位,一个py文件就是一个模块
实际上就是定义py,其中可以包含:定义变量,可执行语句,for 循环 函数定义 等等 他们统称模块的成员
直接用解释器执行.或者pycharm中右键运行
为导入它的模块提供资源(变量,函数定义,)
脚本方式运行时 _ _name 固定的字符串 : main__
以导入方式运行时 _ _name__就是本模块名字
if __name__ =="__main__": #测试阶段
if __name__ =="a": #模块调用阶段
print("我是模块")
如果三个都找不到,报错
内存中:如果之前成功的倒入过某个模块, 直接使用已存在的模块
内置路径下: 安装路径下:lib 下载 的 :site-packages
sys.path : 是一个路径的列表
? 查看 sys.path的内容
import sys:
print(sys.path)
import sys:
print(sys.path)
sys.path.append(r'd:\python_22\day15\aa') #绝对位置
#使用相对位置找aa文件夹
print(__file__) #当前文件的绝对路径
使用OS模块获取一个路径的父路径
import os
import sys
print(os.path.dirname(__file__)+"/aa")
###直接出来 d:\python_22\day15\aa
sys.path.append(os.path.dirname(__file__)+"/aa")
导入模块的所有成员
一次性导入多个模块的成员,不推荐这种写法 分开写
(一荣俱荣一焚俱焚)
从某个模块当中导入指定成员
从某个模块中导入多个成员
从模块中导入所有成员
原名字 a
新名字 ccc
第一种方式 使用成员时,必须使用模块名作为前缀
不容易产生命名冲突
第二种方式在使用成员时,不使用模块名字作为前缀
直接使用成员名.但容易产生冲突.在后定义的成员生效
(把前面的覆盖了)
改用import xxx
避免使用同名
? from a import ck as t:
默认情况下,所有成员都会被导入
_ _all__ 是一个列表, 用于表示本模块可以被外界使用的成员.元素是成员的字符串
**使用_ _all__ 控制那些成员外界可以使用**
_ _all__ 只对 from xx import * 生效 其他方式不生效
def ck():
print("ckckck")
def ck1():
print("ckckck")
def ck2():
print("ckckck")
def ck2():
print("ckckck")
a=10
b=20
__all__=["ck","ck1","a"]
?
asd.py
from .zxc import *
age2=10
zxc.py
def ccc():
print("asdas")
pass
c.py
from test import asd
print(asd.age2)
asd.ccc()
次模块作为对外引用的入口
相对导入同项目下的模块
from..z import zz
相对路径:包含了点号的相对路径
. 表示的是当前的路径。
..表示的是父路径。
...表示的是父路径的父路径。
注意相对导入不能再执行文件中使用
相对导入只能在被导入的模块中使用,使用相对导入 就不需要考虑
执行文件到底是谁 只需要知道模块与模块之间路径关系
"""
随机数
random.random() [0,1) 0取到 1取不到
random.randint(a,b) [a,b] ab 都取到
random.uniform(a,b) [a,b) a 取到 b 取不到
random.shuffle(x) 把参数指定的数据中的元素打乱 参数必须是一个可变的数据类型
import random
lst=list(range(1,10))
random.shuffle(lst)
print(lst)
random.sample(x,k) 从x中抽取k个数据,组成一个列表返回
import random
lst=list(range(1,10))
print(random.sample(lst, 3))
标签:pytho 需要 直接 指定 rom 解决 模块名 目的 rand
原文地址:https://www.cnblogs.com/xueba/p/12392985.html