zoukankan      html  css  js  c++  java
  • python导入模块

    1、import 模块名 as 别名

    (1)

    1 # 导入sys整个模块
    2 import sys
    3 # 使用sys模块名作为前缀来访问模块中的成员
    4 print(sys.argv[0])

    上面第 2 行代码使用最简单的方式导入了 sys 模块,因此在程序中使用 sys 模块内的成员时,必须添加模块名作为前缀。

    (2)

    导入整个模块时,也可以为模块指定别名。例如如下程序:

    1 # 导入sys整个模块,并指定别名为s
    2 import sys as s
    3 # 使用s模块别名作为前缀来访问模块中的成员
    4 print(s.argv[0])

    第 2 行代码在导入 sys 模块时才指定了别名 s,因此在程序中使用 sys 模块内的成员时,必须添加模块别名 s 作为前缀。

    (3)

    也可以一次导入多个模块,多个模块之间用逗号隔开。例如如下程序:

    1 # 导入sys、os两个模块
    2 import sys,os
    3 # 使用模块名作为前缀来访问模块中的成员
    4 print(sys.argv[0])
    5 # os模块的sep变量代表平台上的路径分隔符
    6 print(os.sep)

    (4)

    在导入多个模块的同时,也可以为模块指定别名,例如如下程序:

    1 # 导入sys、os两个模块,并为sys指定别名s,为os指定别名o
    2 import sys as s,os as o
    3 # 使用模块别名作为前缀来访问模块中的成员
    4 print(s.argv[0])
    5 print(o.sep)

    2、from  模块名 import 成员名 as 别名

    (1)

    下面程序使用了 from...import 最简单的语法来导入指定成员:

    # 导入sys模块的argv成员
    from sys import argv
    # 使用导入成员的语法,直接使用成员名访问
    print(argv[0])

    第 2 行代码导入了 sys 模块中的 argv 成员,这样即可在程序中直接使用 argv 成员,无须使用任何前缀。

    (2)

    导入模块成员时,也可以为成员指定别名,例如如下程序:

    1 # 导入sys模块的argv成员,并为其指定别名v
    2 from sys import argv as v
    3 # 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
    4 print(v[0])

    第 2 行代码导入了 sys 模块中的 argv 成员,并为该成员指定别名 v,这样即可在程序中通过别名 v 使用 argv 成员,无须使用任何前缀。

    (3)

    form...import 导入模块成员时,支持一次导入多个成员,例如如下程序:

    1 # 导入sys模块的argv,winver成员
    2 from sys import argv, winver
    3 # 使用导入成员的语法,直接使用成员名访问
    4 print(argv[0])
    5 print(winver)

    上面第 2 行代码导入了 sys 模块中的 argv、 winver 成员,这样即可在程序中直接使用 argv、winver 两个成员,无须使用任何前缀。

    (4)

    一次导入多个模块成员时,也可指定别名,同样使用 as 关键字为成员指定别名,例如如下程序:

    1 # 导入sys模块的argv,winver成员,并为其指定别名v、wv
    2 from sys import argv as v, winver as wv
    3 # 使用导入成员(并指定别名)的语法,直接使用成员的别名访问
    4 print(v[0])
    5 print(wv)

    上面第 2 行代码导入了 sys 模块中的 argv、winver 成员,并分别为它们指定了别名 v、wv,这样即可在程序中通过 v 和 wv 两个别名使用 argv、winver 成员,无须使用任何前缀。

    (5)

    不推荐使用 from import 导入模块所有成员

    在使用 from...import 语法时,可以一次导入指定模块内的所有成员(此方式不推荐),例如如下程序:

    1 #导入sys 棋块内的所有成员
    2 from sys import *
    3 #使用导入成员的语法,直接使用成员的别名访问
    4 print(argv[0])
    5 print(winver)

    上面代码一次导入了 sys 模块中的所有成员,这样程序即可通过成员名来使用该模块内的所有成员。该程序的输出结果和前面程序的输出结果完全相同。
    (6)
    需要说明的是,一般不推荐使用“from 模块 import”这种语法导入指定模块内的所有成员,因为它存在潜在的风险。比如同时导入 module1 和 module2 内的所有成员,假如这两个模块内都有一个 foo() 函数,那么当在程序中执行如下代码时:

    foo()

    上面调用的这个 foo() 函数到底是 module1 模块中的还是 module2 模块中的?因此,这种导入指定模块内所有成员的用法是有风险的。

    但如果换成如下两种导入方式:

    1 import module1
    2 import module2 as m2

    接下来要分别调用这两个模块中的 foo() 函数就非常清晰。程序可使用如下代码:

    1 #使用模块module1 的模块名作为前缀调用foo()函数
    2 module1.foo()
    3 #使用module2 的模块别名作为前缀调用foo()函数
    4 m2.foo()

    或者使用 from...import 语句也是可以的:

    1 #导入module1 中的foo 成员,并指定其别名为foo1
    2 from module1 import foo as fool
    3 #导入module2 中的foo 成员,并指定其别名为foo2
    4 from module2 import foo as foo2

    此时通过别名将 module1 和 module2 两个模块中的 foo 函数很好地进行了区分,接下来分别调用两个模块中 foo() 函数就很清晰:

    1 foo1() #调用module1 中的foo()函数
    2 foo2() #调用module2 中的foo()函数
  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/andrew-address/p/12688854.html
Copyright © 2011-2022 走看看