Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从不同的文件导入Python中包含所有函数的类?_Python_Python 2.7 - Fatal编程技术网

如何从不同的文件导入Python中包含所有函数的类?

如何从不同的文件导入Python中包含所有函数的类?,python,python-2.7,Python,Python 2.7,我在文件“V.py”中创建了“class V”,其中包含一些函数,我希望在其他项目中继续使用这些函数,但是当我调用其中任何一个函数时,会出现一个错误,即没有定义名称。我尝试了所有我能找到的解决方案,但没有任何解决办法。希望有人知道我做错了什么 class V(object): def magnitude(self): a=0 for i in range(len(self)): for j in range(len(self[i]

我在文件“V.py”中创建了“class V”,其中包含一些函数,我希望在其他项目中继续使用这些函数,但是当我调用其中任何一个函数时,会出现一个错误,即没有定义名称。我尝试了所有我能找到的解决方案,但没有任何解决办法。希望有人知道我做错了什么

class V(object):

    def magnitude(self):
        a=0
        for i in range(len(self)):
            for j in range(len(self[i])):
                a= a + self[i][j] **2
        return sqrt(a)
调用函数:

from V import V
A = np.array([[1,2,3],[4,0,6],[7,8,9]])
print magnitude(A)
错误:

NameError: name 'magnitude' is not defined

您应该将量值传递给类,而不是传递给方法 尝试:


重构类方法以获取参数,并在访问该方法之前创建类的对象

from math import sqrt


class V(object):

    def magnitude(self, A):
        a = 0
        for i in range(len(A)):
            for j in range(len(A[i])):
                a = a + A[i][j] ** 2
        return sqrt(a)
这会奏效的。
原因是您试图访问类方法,而不创建类对象,也不在方法内部传递参数
self
基本上就是调用该方法的对象。

怎么办?它应该是V.V import-magnity中的
。然后您对Magnite的调用将起作用。请尝试使用
打印V.Magnite(A)
您可以检查以下内容:感谢您的回复!我运行了代码,它给了我一些wierd错误“TypeError:magnize()正好取1个参数(2个给定)”。但是,如果我在原始文件中运行它,它将正常工作。您是否更改了类?我已经测试过这个代码不应该被破坏
from math import sqrt


class V(object):

    def magnitude(self, A):
        a = 0
        for i in range(len(A)):
            for j in range(len(A[i])):
                a = a + A[i][j] ** 2
        return sqrt(a)
import numpy as np
from V import V

v = V()
A = np.array([[1,2,3],[4,0,6],[7,8,9]])
print (v.magnitude(A))