Python模块简介

import  模块名 (as 别名):

引入某一个.py文件

# 文件1 (demo1.py)
def add(a,b):
    sum = a+b
    return sum

# 文件2 (demo2.py)
import demo1

print(demo1.add(1,2))

#结果为: 3

from  模块名 import  指定函数 (as 别名)

引入某个模块中的某个方法 (不需要用文件名去调用)

# 文件1 (demo1.py)
def add(a,b):
    sum = a+b
    return sum

# 文件2 (demo2.py)
from demo1 import add

print(add(1,2))

#结果为: 3

from 模块名 import *:

引入某一个模块的所有方法 (不推荐使用)

# 文件1 (demo1.py)
def add(a,b):
    sum = a+b
    return sum
def copy(a,b):
    c = a
    a = b
    b = c
    return a

# 文件2 (demo2.py)
from demo1 import *

print(add(1,2))
print(copy(1,2))

#结果为: 3   2

可以在被调用的模块中 使用 __all__ = []   来控制 * 代表的方法

默认是全部,,,如果__all__ 中只填写了一个函数名,则 * 也只代表这一个函数

可以通过as进行创建临时名称

例如

from test import add as a    #则a()  其实使用的依旧是 add() 函数

import sys as a   # 作用相同

模块的作用:

1.从文件级别组织程序,更方便管理

2.拿来主义,提高工作效率

如果要调用不在整个大包的外部模块,需要

import sys
sys.path.index(0,"所添加的模块的绝对路径")

模块的寻找顺序:

内存中已加载的模块  ——>    内置模块   ——>    sys.path路径中的其他模块

 

模块的一些函数方法:

       __name__:

       #作用:用来控制.py文件在不同的应用场景下执行不同的逻辑(或者是在模块文件中测试代码) if __name__ == '__main__':

                                   每个一模块都有该方法,当值为 __main__ 的时候,是本程序在运行,否则就是别的程序再调用

# 文件名 demo.py

if __name__ == '__main__':
    print('我是主程序')
else:
    print("其他的调用我")

# 文件名 demo2.py
import demo2


# 结果:
# 如果运行demo.py,运行结果是: 我是主程序
# 如果运行demo2.py, 运行结果是: 其他的调用我

         dir():    参数:模块名称

                        作用:可以返回模块内定义的所有方法名称,以一个字符串的形式返回

                        如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称

# 文件(demo.py)
def add():
    print("add")

def asa():
    print("asa")

# 文件2(demo2.py)
import demo2

print(dir(demo2))

结果:
#['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'asa']

包:

目录中只有包含一个 “__init__.py” 的文件才能成为包

相同  Java也是用 小数点进行分层  

方式1: 导入子模块,使用时必须用全名才可以进行访问

如:
import day3.demo1.test

day3.demo1.test.add(1,2)

方式2:从某几层文件中导入某个文件

如:
from day3.demo1 import test

test.add(1,2)

方式3:

from day3.demo1.test import add

add(1,2)

猜你喜欢

转载自blog.csdn.net/weixin_42598585/article/details/85641937