import file but reports error NameError: name 'something' is not defined

import file but reports error NameError: name 'something' is not defined

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

欢迎您的评论

使用
a=testa.A(111)

除非明确导入A,否则必须命名包,例如

from testa import A

记住这一点:

做: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