Python-2.24 模块

一、模块分为三大类:
1、内置的模块

import time
import sys

2、第三方的模块

import 第三方1
import 第三方2

3、自定义的模块

import 自定义模块1
import 自定义模块2
import 自定义模块3

二、import …和from …import…

1、import …

import …首次导入模块发生的三件事(假设导入的是test.py模块):

1、执行test.py
2、产生test.py的名称空间,将test.py运行过程中产生的名字都丢到test的名称空间中
3、在当前文件中产生的有一个名字test,该名字指向2中产生的名称空间

导包的格式:

1、import 模块名
2、import 模块名1,模块名2,模块名3(导入多个模块,可以用都好隔开)

导入特别长的模块名可以用as后定义一个简单的模块名来代替,就是起别名

import configuration as f
f.x
f.func1()
f.func2()

impot…导入模块在使用时必须加前缀"模块."
优点:肯定不会与当前名称空间中的名字冲突
缺点:加前缀显得麻烦

2、from…import…

from … import …导入也发生了三件事(假设导入的是test.py):

1、产生一个模块的名称空间
2、运行test.py将运行过程中产生的名字都丢到模块的名称空间去
3、在当前名称空间拿到一个名字,该名字与模块名称空间中的某一个内存地址

test.py文件

x = 1


def get():
    return x


def change():
    global x
    x = 0
    return x

main.py文件

from foo import change
from foo import get
from foo import x

print(x)
print(get())
print(change())
x = 333333333
print(x)
print(get())
print(change())
print(get())

结果:
1
1
0
333333333
0
0
0

一行导入多个名字(不推荐)

from test import x,get,change

*:导入模块中的所有名字

from test import *

起别名

from test import get as g

from…impot…导入模块在使用时不用加前缀
优点:代码更精简
缺点:容易与当前名称空间混淆

all:指明只能使用哪些名称空间里的变量或者函数

test.py文件

__all__ = ['x', ]  # 控制*代表的名字有哪些

x = 1


def get():
    return x


def change():
    global x
    x = 0
    return x

main.py文件

from foo import *

print(x)
print(get)
print(change)

结果:
1
NameError: name 'get' is not defined
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值