• python中模块的制作


    1.import 模块名

    2.from 模块名 import 类名(或方法名或全局变量)

    3.from 模块名 import *   导入模块名下的所有类名,方法,全局变量

    4.from 模块名 import 类名(或方法名或全局变量) as 别名    原来的名称太长,给它起个别名         

    5.定位模块:

      当你导入一个模块,Python解析器对模块位置的搜索顺序是:

    1. 当前目录
    2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
    3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
    4. 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

    6.自定义模块方法一

    (1)首先认识一个变量 __name__ 

      __name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__ 的名称就是__main__如果不是,则为这个模块的名称。
      __main__一般作为函数的入口,类似于C语言,尤其在大型工程中,常常有if __name__ == "__main__":来表明整个工程开始运行的入口。

    使用这个变量的结果可以判断是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码

    例子:

    # 加法运算
    def my_sum(a,b):
        return a+b
    
    # 1.开发完成之后需要自测
    # 1.1一般需要创建一个函数 来完成自测
    def main():
        # 定义一个变量
        ret=my_sum(10,20)
        print(ret)
    
    # 书写格式一般都会这么些(开发常用于测试或者作为程序的入口)
    # 默认情况下,在本模块内执行这个模块,当前的这个python的变量__name__的值为__main__
    if __name__ == '__main__':
        main()

    7.自定义模块方法二:

    (1)使用__all__,只有使用from xxx import * 的时候__all__才能产生作用。如果在一个模块中,定义了很多的类,方法,全局变量,如果使用from xxx import * 的方法使用该模块,而又不想让使用模块中的某些类,方法或者全局变量,那么就需要在该模块里写上__all__=[],在列表里写上允许导入的类,方法,全局变量,如果不在这个列表里注册,就不能使用该类,方法或者全局变量了。

    __all__=["name","sum","Student"]

    ==================================

    python中的包

    (1)python中的包会有一个__init__.py模块。在python3.x没有__init__.py也可以正常使用,但是在python2.x中必须有__init__.py

    (2)在包中的__init__.py中定义all=[在这里面添加你想要导入的模块名]

    (3)同理在每个模块下__all__=[]添加你允许导入的类名,方法名,全局变量

    (4)使用from 包名.模块名 import *    导入模块(1)(2)(3)才能生效

    其他导入方法:import 包名.模块名

  • 相关阅读:
    node express 上传文件
    [Java] 对象转型-01
    [Java] 类的Equals方法 (String, Data类都已经自动重写)
    editor does not contain a main type" 错误解决方
    Ubuntu网络连接图标消失解决方法
    [面试] 从尾到头打印链表-递归实现
    C++继承的例子 (1)
    国内访问gmail
    [python] 第7章 函数 第8章 模块
    Devcpp(Dev C++)使用说明及技巧
  • 原文地址:https://www.cnblogs.com/fjiqiang/p/10546026.html
Copyright © 2020-2023  润新知