NameError:name' self'未定义 - 模块导入

时间:2017-12-18 22:52:40

标签: python

编辑:这是当前的问题:

Traceback (most recent call last): File "figure.py", line 32, in <module> import Python2 
File "C:\scripts\python2.py", line 12, in <module> shp = shape.Python1(self.size, self.length, self.breadth,self.height) 
NameError: name 'self' is not defined 

虽然这个问题多次被问过但它还没有解决我的问题。

我有两个python文件python1.pypython2.py

python1.py

def add(self,a):
    .....

def sub(self,b):
    ....

python2.py

import python1

def square (self,c):
    python1.add(a)

当我尝试运行此功能时,在python2.py我得到AttributeError: 'module' object has no attribute 'add'。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

鉴于add有两个参数(selfa),我假设它包含在一个类中。你可以这样做:

from python1 import YourClass

YourClass().add(a)

或者这个:

import python1
python1.YourClass().add(a)

回复评论:
self不需要包含在方法或类初始化的实际调用中。以下是您应该如何称呼它:

python1.shape(w, x, y, z) #as opposed to python1.shape(self.w, self.x, self.y, self.z)

然后它们将被分配为类&#39;中的实例变量(self变量)。 __init__功能。