zoukankan      html  css  js  c++  java
  • pytho模块的加载顺序

            当前目录如果有同名的系统模块,那么当前目录的模块会被import,系统模块会被忽略,如:

    1 ghostwu@ghostwu:~/python/module$ ls
     2 import_test.py  string.py
     3 ghostwu@ghostwu:~/python/module$ cat string.py 
     4 #!/usr/bin/python
     5 #coding:utf-8
     6 
     7 def add( a, b ):
     8     return a + b
     9 ghostwu@ghostwu:~/python/module$ cat import_test.py 
    10 #!/usr/bin/python
    11 #coding:utf-8
    12 import string
    13 str = 'ghostwu'
    14 print string.capitalize( str )
    15 
    16 ghostwu@ghostwu:~/python/module$ python import_test.py 
    17 Traceback (most recent call last):
    18   File "import_test.py", line 8, in <module>
    19     print string.capitalize( str )
    20 AttributeError: 'module' object has no attribute 'capitalize'
    21 ghostwu@ghostwu:~/python/module$ ls -a
    22 .  ..  import_test.py  string.py  string.pyc 

        在当前目录下,定义了一个同名的string模块( 指的是与系统的string模块同名 ),由于执行的时候,当前目录的模块被import了,所以识别不了系统string模块的方法capttalize.

    只要删除目录下的string.py string.pyc,就能正常import系统的模块 

         1 ghostwu@ghostwu:~/python/module$ ls -a

    2 .  ..  import_test.py  string.py  string.pyc
    3 ghostwu@ghostwu:~/python/module$ rm string.py string.pyc
    4 ghostwu@ghostwu:~/python/module$ ls -a
    5 .  ..  import_test.py
    6 ghostwu@ghostwu:~/python/module$ python import_test.py 
    7 Ghostwu    
  • 相关阅读:
    neutron外网介绍
    oracle时间转换问题汇总
    redhat72普通用户计划任务实现守护进程
    Rabbitmq消息持久化
    rabbitmq消息流转分析
    Rabbitmq基本概念
    protobuf传文件存入oracle
    X32指令自动委托
    IT系统上线事宜
    可转债业务玩法
  • 原文地址:https://www.cnblogs.com/68xi/p/8616360.html
Copyright © 2011-2022 走看看