python 引用模块module和包package的区别

补充一点模块和包的定义:

(1)模块:

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

(2)包:

包(Package)就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件,该文件夹可用于包含多个模块源文件,包的本质依然是模块。
 

新手入门,在引用包和模块时多少会有点迷糊,我在这里总结一点区别。

 图1

图1 是包的结构,文件夹名是包名,必须要包含 __init__.py 文件。__init__.py 文件的内容写的是 包内包含的模块列表和其他全局常量等等。

# __init__.py

__all__ = ["module_test"]

module_test.py 模块中包含一个class_add类,类中有函数 sum1,用于统计传入参数之和;模块中还有另一个函数 sum2,与sum1功能相同。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# module_test.py

class class_add():
    def __init__(self) -> None:
        pass

    # 相加之和
    def sum1(self, *args):
        sum_ = 0
        for num in args:
            sum_ += num
        return sum_

# 相加之和
def sum2(*args):
    sum_ = 0
    for num in args:
        sum_ += num
    return sum_

​

下面是main.py模块代码,下面分别是引用包的类 和 模块的方式。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# main.py

from math_test.module_test import class_add        # 引用 包的类的方式
from math_test import module_test as mt            # 引用 包的模块的方式

cadd = class_add()

print("cadd.sum1: " + str(cadd.sum1(1,2,3,4,5,6,7,8)))
print("mt.sum2: " + str(mt.sum2(1,2,3,4,5,6,7,8)))

下面这方式同样可以达到上面的效果 。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# main.py

from math_test.module_test import class_add, sum2

cadd = class_add()

print("cadd.sum1: " + str(cadd.sum1(1,2,3,4,5,6,7,8)))
print("sum2: " + str(sum2(1,2,3,4,5,6,7,8)))

猜你喜欢

转载自blog.csdn.net/qq_15855921/article/details/122025294
今日推荐