zoukankan      html  css  js  c++  java
  • python--包、模块调用

    Python中一个文件夹可以称作为一个包,文件夹下的文件可以称为模块

    模块之间可以相互调用

    在一个文件下创建两个py文件,里面的变量等,是可以相互调用的

    m1.py

    b = [1,2,3,4]
    m2.py
    import m1
    print(m1.b)

     也可以

    import m1 as m  (嵌套的层级太多时,避免输入过长字符)

    print(m.b)

    python import 的另一种方法:

    from m2 import b
    print(b)

     import 导入的是具体的模块,from导入的是具体的模块加变量

    当导入的变量很多是可以用 *  代替

    模块内置的系统变量

    m1.py

    __all__ = ['a','c']

    a = 2

    c = 3

    d = 4

    m2.py

    from m1 import *

    print(a)

    print(c)

    print(d)

    这是只会打印出a和c,但是如果先打印d,则不会打印出c,因为代码执行到print(d)会报错。

    代码换行

    代码末尾添加

    也可以使用()

    from m1 import a,b

    c

    print(a)

    from m1 import (a,b

    c)

    print(a)

    导入一个包下的模块或变量到另一个文件中,该包下的 __init__.py 也会跟随自动执行

    __init__.py的作用:

    批量导入变量

    __init.py

    import sys
    import datetime
     
    m3.py
    import t
    print(t.sys.path)
     
    目录层级关系:
    D:filespython \__init__.py
    D:filespythonm3
     
     

    __init__.py 添加 __all__ = ['m1']

    在另一个文件导入* 时,只会打印出m1内的变量,不会打印其他模块的变量。

    注意包和模块导入:

    包和模块是不会被重复导入的

    避免循环导入,循环导入:两个文件相互引用变量,也可能是多个文件相互引用,形成了一个闭环。

    m5.py

    from m5 import m5
    m4 = 1
     
    m4.py
    from m4 import m4
    m5 = 6

    print(m4)

    这样会报错的

    导入一个模块时,模块里的全部代码也会被执行。

    m4.py

    m4 = 1
    print(m4)
     
    m5.py
    import m4
    m5 = 6
     
    执行m5.py 时 同样会打印出m4
     
    注意:在另一文件运行导入模块时,一定要先保存导入的模块内容。


    当你的才化撑不起野心时,还是安静下来学习吧!
  • 相关阅读:
    HDU 1358 Period (KMP)
    POJ 1042 Gone Fishing
    Csharp,Javascript 获取显示器的大小的几种方式
    css text 自动换行的实现方法 Internet Explorer,Firefox,Opera,Safar
    Dynamic Fonts动态设置字体大小存入Cookie
    CSS Image Rollovers翻转效果Image Sprites图片精灵
    CSS three column layout
    css 自定义字体 Internet Explorer,Firefox,Opera,Safari
    颜色选择器 Color Picker,Internet Explorer,Firefox,Opera,Safar
    CSS TextShadow in Safari, Opera, Firefox and more
  • 原文地址:https://www.cnblogs.com/carl007/p/12013206.html
Copyright © 2011-2022 走看看