python包和模块_一. python包和模块

这是bb.py文件#方式一

"""import aa #只在第一次导入时才执行my_module.py内代码,此处的显式效果是只打印一次'from the my_module.py',当然其他的顶级代码也都被执行了,只不过没有显示效果.

import aa

import aa

import aa

# python的优化手段是:第一次导入后就将模块名加载到内存了,

# 后续的import语句仅是对已经加载大内存中的模块对象增加了一次引用,

# 不会重新执行模块内的语句"""

#方式二

"""#测试一:money与aa.money不冲突

每个模块都是一个独立的名称空间,定义在这个模块中的函数,

把这个模块的名称空间当做全局名称空间,这样我们在编写自己的模块时,

就不用担心我们定义在自己模块

中全局变量会在被导入时,与使用者的全局变量冲突

#bb.py

import aa

money=10

print(aa.money)

'''

啦啦啦啦啦啦啦啦

1000

'''"""

#方式三

"""#测试二:read1与aa.read1不冲突

#demo.py

import aa

def read1():

print('这是本地模块哈哈哈')

aa.read1()

read1()

'''啦啦啦啦啦啦啦啦

bb->read1->money 1000

这是本地模块哈哈哈

'''"""

#方式四

"""执行bb.change()操作的全局变量money仍然是aa中的

#demo.py

import aa

money=1

aa.change()

print(aa.money)

print(money)

'''

啦啦啦啦啦啦啦啦

0

1

'''"""

#1.为源文件(aa模块)创建新的名称空间,在aa中定义的函数和方法若是使用到了global时访问的就是这个名称空间。#2.在新创建的命名空间中执行模块中包含的代码,见初始导入import aa

#方式五

"""import aa as c # 给引入aa的模块给aa模块 取一个别名 c

print(c.money)"""

#方式六

"""# 导入的函数read1,执行时仍然回到aa.py中寻找全局变量money

from aa import read1

money=8222

read1()

'''

啦啦啦啦啦啦啦啦

bb->read1->money 1000

'''"""

#方式七

"""#测试二:导入的函数read2,执行时需要调用read1(),仍然回到aa.py中找read1()

#demo.py

from aa import read2

def read1():

print('==========')

read2()

'''

啦啦啦啦啦啦啦啦

bb->read2 calling read1

bb->read1->money 1000

'''"""

#方式八

"""#测试三:导入的函数read1,被当前位置定义的read1覆盖掉了

#demo.py

from aa import read1

def read1():

print('==========')

read1()

'''

啦啦啦啦啦啦啦啦

==========

'''"""

#方式九

"""# 要特别强调的一点是:python中的变量赋值不是一种存储操作,而只是一种绑定关系

from aa import money,read1

money=100 #将当前位置的名字money绑定到了100

print(money) #打印当前的名字

read1() #读取aa中的名字money,仍然为1000

'''

啦啦啦啦啦啦啦啦

100

bb->read1->money 1000

'''"""

#方式十

"""# 多模块导入

from aa import (read1,read2,money)

print(money)"""

#方式十一

"""# * 全部导入

from aa import * #将模块my_module中所有的名字都导入到当前名称空间

print(money)

print(read1)

print(read2)

print(change)

啦啦啦啦啦啦啦啦

1000

"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值