导入文件但报告错误NameError:name' something'未定义

时间:2015-05-10 08:10:33

标签: python import

testa.py

class A:

    s1 = 333
    __age = 0

    def __init__(self,age ):
        self.__age=age
        return

    def __del__(self):  

        return  
    #private
    def __doSomething(self, s): 
        print self.__age 
        return            
    #public
    def doSomething(self, s):  
        self.__doSomething(s)    
        print s

test.py

import sys
import testa

a=A(111)
a.doSomething('222')

运行

python test.py

报告错误:

NameError: name 'A' is not defined

欢迎评论

2 个答案:

答案 0 :(得分:2)

使用
UAXXXXXXXY

除非您明确导入a=testa.A(111),否则必须为包命名,例如

A

答案 1 :(得分:0)

记住这一点:

执行:import mymodule不会将mymodule的整个方法和属性导入命名空间,因此每次需要方法或属性时都需要引用mymodule ,使用.表示法,例如:

x = mymodule.mymethod()

但是,如果您使用:

from mymodule import * 

这会将mymodule的每个方法和属性都带入命名空间,并且它们可以直接使用,因此每次需要调用其中一个方法时都不需要引用mymodule或属性,例如:

from mymodule import *

x = mymethod()  #mymethod being a method from mymodule

如果您不想携带整个模块,也可以导入特定方法:

from mymodule import myMethod

有关详细信息,请阅读Python文档:

https://docs.python.org/2/tutorial/modules.html