• python--模块、列表生成式、集合元祖列表


    一、导入模块的两种方式

      1.直接使用import

    1 import 模块名
    2 
    3 #调用
    4 模块名.方法名()

      2.使用from…import…

    1 from 模块名 import 方法名1,方法名2(from 模块名 import *)
    2 
    3 #调用
    4 方法名()

      3.__name__:直接使用解释器调用模块时,值为__main__,在其他地方调用模块时, 会显示为模块名,通过这一特性可以更好的测试

    def test1(object):
        print('1111')
    
    def test2(object):
        print('2222')
    
    if __name__ == '__main__':
        test1()
        test2()

      4. 一个模块在导入后进行修改,修改后的内容是无法直接生效的,如果想要让修改后的内容生效,可以用下面的办法

    from imp import *
    
    reload(模块名)

       5.修改导入模块的默认路径

    import sys
    
    print(sys.path)    #会打印出模块加载的默认路径,是一个列表
    
    sys.path.append('/home/itcast/xxx')
    sys.path.insert(0, '/home/itcast/xxx')    #可以确保先搜索这个路径

      5.模块的循环导入问题

        (1)首先定义一个a模块和一个b模块,在a模块中想要调用b模块中的b函数,在b模块中想要调用a模块中的a函数,这样就会形成一个死循环,报错

    from b import b
    
    def a():
        print('----a----')
        b()
    
    a()
    from a import a
    
    def b():
        print('----b----')
    
    def c():
        print('----c----')
        a()
    
    c()

        (2)要谨防上面问题的发生,解决该问题应该写一个新的模块,在新的模块中调用

     二、其他

      1.__all__

    __all__ = ["test1"];
    
    def test1():
        print("11111")
    
    def test2():
        print("22222")
    
    #在模块中__all__后的部分添加模块中的方法名,如果在外部使用from ... import *时,只会导入__all__中的方法

      2.让程序自动导入在下一级目录下的模块,可以在下一级目录创建一个名为__init__.py的文件(此时该目录称之为包),然后在__init__.py文件中输入__all__ = ['模块名']的内容(注:该方法只是在导入模块式使用from ... import *时生效,想直接使用模块见下条)

      3.如果想直接使用该目录下的模块,需要在__init__.py文件中使用from . import 模块名进行导入

      4.列表推导式

    a = [x for x in range(4)]
    print(a)    #结果为:[0, 1, 2, 3]
    
    a = [x for x in range(3, 4)]
    print(a)    #结果为:[3]
    
    a = [x for x in range(3, 19, 2)]
    print(a)    #结果为:[3, 5, 7, 9, 11, 13, 15, 17]
    
    a = [x for x in range(10) if x % 2 == 0]
    print(a)    #结果为:[0, 2, 4, 6, 8]
    
    a = [x for x in range(3) for j in range(2)]
    print(a)    #结果为:[0, 0, 1, 1, 2, 2]
    
    a = [(x, y) for x in range(3) for j in range(2)]
    print(a)    #结果为:[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]

    三、集合

      1.集合的定义:a = {11, 22, 33}

      2.集合的特点:集合会自动去重

      3.集合和列表的相互转换:set() list()  利用集合会自动去重的特点,可以对列表进行去重

  • 相关阅读:
    SE78添加图片,比如smartforms用的…
    Smartforms
    将文件上传到FTP服务器
    【转自ITPUB】SYNONYM关于underlying table权限的小小发现
    alter session set current_schema=Schema
    exportDISPLAY=:0.0的解释
    如何通过使用Xmanager的图形化界面修改系统
    Xms Xmx PermSize MaxPermSize 区别
    oracle中schema指的是什么?
    oracle表空间查询
  • 原文地址:https://www.cnblogs.com/peilanluo/p/8195919.html
Copyright © 2020-2023  润新知