Python 从入门到实战26(package)

        我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。

        上篇文章我们讨论了模块的相关知识。今天我们将学习一下包(package)的相关基础知识。

1、引入包的概念

使用模块-module可以避免由函数名和变量名重名引发的冲突。若是模块名重复了要怎么处理呢?可以将模块放到不同的包中即可。包是一个分层次的目录结构。我们一般将一组功能相近的模块组织在一个包下。这样既可以起到规范的作用,又能避免模块名重名引发的冲突。

如下图所示第三方库中都有package。

2、创键包(package)

创建包实际就是创建一个文件夹,

如我们在项目中新建一个包,新建-选择python package-输入包名-确定

如上图所示,在新增package 中同步有__init__.py 的模块生成。

后续使用时导入包会自动执行__init__.py,默认生成是空的。

3、使用包的方法

上一步骤中我们完成了包的创建,创建包以后我们可以在包中创建模块。然后就可以使用包中的模块了。

例如我们在basic_practice 包下面新建了模块calculate,在模块中写了几个函数:加减乘除

1)通过 import导入模块

import packageName.moduleName

例如:

import basic_practice.calculate
if __name__ =="__main__":
    x,y = 5,6
    result = basic_practice.calculate.add_numbers(x,y)
    print("两个数的和为:",result)

注意调用方法的时候需要加上包名.模块名.方法名

输出参考:11

2)通过from+完整包名+import+模块名导入

还是上面的例子改写一下,

from basic_practice import calculate
if __name__ =="__main__":
    x,y = 5,6
    result = calculate.add_numbers(x,y)
    print("两个数的和为:",result)

注意调用方法的时候需要模块名.方法名来使用。

3)通过from+完整包名+模块名+import+定义名导入

如在calculate 模块增加变量:

#定义长方形长、宽
_length = 10
_width = 20

然后在mian.py中使用。

from basic_practice.calculate import _length,_width

if __name__ =="__main__":
    #长方形的面积计算
    rect_area = _width * _length
    print("长方形的面积:",rect_area)

输出参考:

4)通过from+完整包名+模块名+import+方法名导入

还是之前的例子参考:

from basic_practice.calculate import add_numbers
if __name__ =="__main__":
    x, y = 5, 6
    result = add_numbers(x, y)
    print("两个数的和为:", result)

输出结果也是正确的。

注意:此时可以直接使用方法,不需要在方法名之前写模块名字、包名称

4、以主程序方式执行

         开始我们在包名basic_practice新建了模块smalltree.py 的模块

模块中写下如下代码:

不但有变量,还有函数和一些测试代码。

pinetree = "我是一棵小松树"  #全局变量

def light_tree():
    pinetree = "挂上了灯,小树变得明亮了!"
    print(pinetree)
#函数体外
light_tree()
pinetree = "我身上"+pinetree
print(pinetree)

我们导入到main函数去执行,发现smalltree.py 全部执行了,如下图

但是,我们大多数时候并不需要全部执行,要怎么解决呢?

加入if条件就可以了,if __name__==”__main__”:

如,改写smalltree 模块为:

pinetree = "我是一棵小松树"  #全局变量

def light_tree():
    pinetree = "
挂上了灯,小树变得明亮了!"
    print(pinetree)
#
函数体外
if __name__=="main()":
    light_tree()
    pinetree = "
我身上"+pinetree
    print(pinetree)

再次在main.py执行原来的语句:

from basic_practice import smalltree

if __name__ =="__main__":
    print("
全局变量的值:",smalltree.pinetree)

可以发现就只执行了全局变量的值。不再全部执行small tree中所有内容。

5、python 中main函数作用

Python中,main函数是程序的入口点,负责调用其他函数或执行其他代码,使程序能够按照预期的方式运行。当运行一个Python程序时,解释器会从main函数开始执行。

         举例说明:

def main():
    print("全局变量的值:", smalltree.pinetree)

    x, y = 5, 6
    result = add_numbers(x, y)
    print("
两个数的和为:", result)

    #
长方形的面积计算
    rect_area = _width * _length
    print("
长方形的面积:", rect_area)

    advertisement_huawei = "
华为华为,科技遥遥领先,是宇宙中最优秀的手机!"
    replace_chars(advertisement_huawei)

    #
计算圆的面积
    r = float(input("请输入圆的半径\n"))
    area = math.pi * r * r
    print("
圆的面积为:{:.2f}".format(area))

    print(sys.path)

if __name__ =="__main__":
    main()

输出结果参考:

在这个例子中,我们定义了一个名为main的函数,然后使用if __name__ == "__main__":来判断当前文件是否是作为主程序运行的。如果是主程序运行,就调用main函数。

使用main函数有以下几个好处:

代码组织:将程序的入口点分离出来,使代码结构更清晰。

易于理解:对于其他程序员来说,看到明确的main函数会立即明白程序的起始点。

重用和维护:将代码封装在函数中,特别是在main函数中,可以更容易地在其他项目中重用代码,同时也使得维护和更新代码变得更加方便。

测试和调试:独立的main函数使得对程序的各个部分进行测试和调试变得更加容易。

今天先写学习到这里了,每天进步一点点。明天也要加油啊!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立黄昏粥可温

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值