美文网首页
2018-04-26-python module

2018-04-26-python module

作者: DeveloperCong | 来源:发表于2018-04-26 19:08 被阅读0次

    __name __

    导入模块的时候会从头到尾执行一遍,因此如果我们在我们的.py 文件中,写了 直接能执行的代码,比如print("xxx") 这样的代码,就会在导入的时候执行一遍,但是有些是我们的测试代码,需要在开发模块的时候进行测试,还比如,我们自己开发的功能调用的时候需要执行一个方法,但是呢,如果我们被别人引入的时候,不希望执行这些代码:

    python有一个 变量叫 __name__ 在直接执行的时候的值为 __main__ 在作为模块导入的时候为 模块的名字;
    因此:

    if __name__  == " __main__ ":
          # 需要执行的代码
           main()
    

    什么是模块?

    模块就是.py文件,或者文件夹

    导入模块的方法:

    import moduleName
    form moduleName import 功能
    其中功能包括: 函数,全局变量,类

    有一个属性可以控制 模块对外开放的功能

    __all__ = ['test', 'test2']  
    """ 
    列表中添加的是需要暴露的功能,也就是 函数,全局变量,
    类等,只有这个列表中有的功能外部才能导入,
    如果不写,默认是可以导入全部功能。
    """
    

    包 : 按照包来组织代码

    1 需要创建一个文件夹,在这个文件夹下,创建一个__init__.py文件,这样这个文件夹就能够称之为一个包;
    这个文件夹下面可以放置多个py文件
    __init__.py 文件里也可以定义__all__属性,和上面类似,导入一个包的时候,就会执行__init__.py 这个文件,因此如果在__init__.py文件中写上: import xxx :就表示可以使用这个功能。

    发布一个python包:

    需要创建 setup.py文件

    程序传参;

    ping 192.158.1.13
    这里面的ip地址是可以变的,因此程序肯定是可以在执行的时候接收到这些参数,然后进行处理---python是如何接收传参的呢?

    python中有一个模块叫 sys

    import sys
    sys.argv: 这个参数就代表程序执行的时候传入的参数
    argv是一个列表,列表的第一个元素 也就是argv[0]:表示的程序的名称
    argv[1]....等 就表示程序运行时传入的参数
    

    range的危害:

    在python2中range会创建到内存中,一次如果创建一个数量很大的range列表,会导致内存占用过多甚至溢出。python3中只有在实际获取的时候才真正创建对象 分配内存

    列表推导式:

    推导一个列表:实际上是对 for xx in xxxx:循坏的一个简写

    1 原始版:
    a = []
    for i in range(1, 10):
           a.appeng(i)
    
    2简略版  
       []: 代表列表
       [ for i in range(1,10)] :列表中for循环
       [i for i in range(1,10)] 列表中的元素为i 因此前面再加个i
       既然可以for循环,也可以再进行扩展
       [i for i in range(1, 10) if i%2 == 0] :满足连个条件的i
       [(1,1), (1, 2),...] 列表中是元组如何构成?
       [(i, j) for i in range(1, 10) for j in range(10)] 
    
    

    set集合: 自动去重的无序列表

    set2 = {11, 22, 33, 44}
    

    相关文章

      网友评论

          本文标题:2018-04-26-python module

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