zoukankan      html  css  js  c++  java
  • python基础入门之十八 —— 模块和包

    一、模块

    模块能定义函数,类和变量,模块里也能包含可执行代码。

    1、 导入模块

    • import 模块名
    • from 模块名 import 功能名
    • from 模块名 import *
    # 法1:import 模块
    import math
    print(math.sqrt(9))
    # 法2:from 模块 import 功能1,功能2,……
    from math import sqrt
    print(sqrt(8))
    # 法3:from 模块 import *
    from math import *
    print(sqrt(8))

    2、模块别名

    • import 模块名 as 别名
    • from 模块名 import 功能名as 别名
    # 别名1:
    import time as t
    t.sleep(1)
    # 别名2:
    from time import sleep as sl
    sl(1)

    3、制作模块

    系统变量:

    • __all__:在使用from 模块/包 import *时,允许导入的模块或功能列表 
    • __name__:运行该模块的文件名:(1)如果在本文件内运行__name__值为__main__
    •                                                          (2)  如果在被其他文件调用时,__name__值为代码所在的文件名

    模块:module.py

    __all__ = ['println','test']
    
    def println(a,b):
        print(a+b)
    
    def test(a,b):
        print(a*b)
    
    if __name__ == '__main__':
     println(1,2)
     print(__name__)

    调用文件:demo.py

    from module import *
    
    println(2,3)  # 5
    test(1,2)  # 2

    P.s:如果功能名字重复,调用到的是最后定义或导入的功能

    二 、包

    • 将有联系的模块放在同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称作为包
    • 新建包mypackage

    1、创建包

     新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为

    2、导包

    • import 包名.模块名
    • from 包 import *

    P.s:使用‘from 包 import *’这个导包一定要在__init__.py文件中定义__all__,否则报错

     m1.py:

    def info():
        print('my module 1')

    m2.py:

    def info():
        print('my module 2')

    demo.py:

    # 法一:import 包名.模块名
    import bag.m1
    bag.m1.info()  # my module 1
    
    # 法二:from 包名 import *
    from bag import *
    m1.info()  # my module 1
    # m2.info() # __all__列表中没有m2,报错
  • 相关阅读:
    织梦精准搜索自定义字段搜索证书查询
    织梦一个标签获取当前链接url(首页/列表页/列表分页/内容页/内容页分页)
    织梦dede:arclist按最新修改排序orderby=pubdate无效的解决方法
    织梦likearticle让mytypeid支持多个栏目和子栏目
    织梦站内选择和文件管理器中文乱码的解决方法(utf8编码程序包才会)
    WPFDispatcher示例
    WPF 核心体系结构
    WPF扩展标记
    WPF 路由事件
    WPF 自定义路由事件
  • 原文地址:https://www.cnblogs.com/LynHome/p/12650286.html
Copyright © 2011-2022 走看看