Python 模块,import导入模块,from...import ,模块指定别名(as)。reload重新加载模块(热加载)

 

我的模块.py(自定义的模块):

# 全局变量
title = "模块1"


# 函数
def say_hello():
    print("我是 %s" % title)


# 类
class Dog(object):
    pass


# 类
class Cat(object):
    pass

demo.py(from...import 导入模块):

import 我的模块 as 模块别名   # 导入模块中的所有工具,同时为模块指定别名。 别名推荐使用大驼峰命名法
from 我的模块 import Dog     # from...import 导入模块中的部分工具(全局变量/函数/类)
# from 我的模块 import *       # 导入模块中的所有工具(不推荐,函数同名不好排查). 后导入的工具会覆盖先导入的同名工具
from 我的模块 import Cat as Cat2  # 为导入的工具指定别名,防止与其他模块中的工具重名


模块别名.say_hello()  # 模块名.工具 的方式使用模块中的工具

dog = Dog()    # from...import的方式导入的工具,不需要通过模块名可以直接使用
cat = Cat2()   # Cat2是为导入的工具指定的别名

demo.py(重新加载模块,热加载,reload):

import test
from imp import reload

print(test.age)

# 重新加载模块(该模块必须已经在之前加载成功)
reload(test)  # 在不关闭python解释器的情况下重新加载之前的模块。

print(test.age)

demo.py(跨模块开发的注意事项):

import test1
from test2 import age2
from test2 import list_1

test1.age += 1   # 通过点.的方式修改源模块中的变量值,源模块中的变量会真正修改
print(test1.age)

age2 += 1  # 这种方式只是修改当前模块中的引用,并没有修改源模块中变量的值
print(age2)

list_1.append(5)  # 通过list原生方法,可以修改源模块中list的值。
print(list_1)

demo.py(动态导入,__import__()函数动态导入模块):

module_name = "模块名"    # 可以动态设置模块名
func_name = "模块中的资源名"  # 可以动态指定模块中的资源。

my_module = __import__(module_name)  # my_module指向了导入的模块
my_func = getattr(my_module, func_name)  # 此时my_func就指向了指定模块中的指定资源。

 


 

 

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值