美文网首页
Python模块化

Python模块化

作者: o0龙与猫0o | 来源:发表于2020-02-10 22:42 被阅读0次

    最简单的模块化方式

    最简单的方式就是把函数,类,变量拆分到不同的文件中,
    然后使用 from your_file import function_name, class_name 引用,之后函数和类,就可以在当前文件中直接使用了。
    import可以通过相对路径或绝对路径,来导入,同文件夹下的可以不带目录
    也可以使用下面的工程化的方式。

    #gui/my_gui.py
    def get_gui(a)
      print(a)
    
    #util/utils.py
    def get_sum(a, b):
      return a+b
    
    #util/class_utils.py
    class Encoder(object):
        def encode(self, str):
            return s[::-1]
    
    class Decoder(object):
        def decode(self, str):
          return ''.join(reverse(list(str)))
    
    #util/main.py
    from utils import get_sum
    from class_utils import *
    from gui.my_gui import *
    
    print(get_sum(1, 2))
    
    encoder = Encoder()
    decoder = Decoder()
    
    print(encoder.encode('abcde'))
    print(decoder.decode('edcba'))
    
    get_gui(1)
    

    注意:

    我们还需要在模块所在的文件夹新建一个 ____init___.py,内容可以为空,也可以用来表述包对外暴露的模块接口。不过,事实上,这是 Python 2 的规范。在 Python 3 规范中,____init___.py 并不是必须的

    项目模块化

    那就是以项目的根目录作为最基本的目录,所有的模块调用,都要通过根目录一层层向下索引的方式来 import。
    比如,不要使用..这种相对路径的方式引入项目

    if __name__ == '__main__'
    

    Python是脚本语言,和其它语言不同,不需要显式的提供main()函数入口
    import模块时,如果函数之外的代码不放到main中,会把这些代码都执行一遍。

    name 作为 Python 的魔术内置参数,本质上是模块对象的一个属性。我们使用 import 语句时,name 就会被赋值为该模块的名字,自然就不等于 main了。更深的原理我就不做过多介绍了,你只需要明白这个知识点即可。

    相关文章

      网友评论

          本文标题:Python模块化

          本文链接:https://www.haomeiwen.com/subject/kxezxhtx.html