【问题标题】:Can imported classes use functions and classes from the importing file?导入的类可以使用导入文件中的函数和类吗?
【发布时间】:2019-08-12 23:12:09
【问题描述】:

我想稍微整理一下我的代码,并决定将主文件分成多个较小的文件。

这是旧设置

coefficient = 2

def foo(x):
    return coefficient*x

class Pair:
    def __init__(self,x,y):
        self.x = x
        self.y = y

class Bar:
    def __init__(self,value):
        self.x = value
        self.y = foo(value)
        self.point = Pair(self.x, self.y)

如果我只将Bar 移动到file.py,使用from .file import * 从那里导入它并尝试在代码中的任何位置使用它,我会收到file 中缺少的任何内容的name is not defined 错误,除非我也将coefficientfooPair 移动到那里。由此我认为,如果我将fooPair 移动到第三个文件并从那里导入(我也打算这样做),那么它尤其不起作用。

我在这里遗漏了什么或者这实际上是不可能的吗?

【问题讨论】:

    标签: python-3.x python-import


    【解决方案1】:

    通常,您应该能够从另一个文件调用函数。但是,如果导入的类中的函数基于它导入的文件,我认为您不能调用它们,因为它将寻找 'foo' 和 'Pair' 在 bar 的文件中。

    希望这是有道理的。

    【讨论】:

    • 是的,这就是我害怕的。我假设导入文件中的类和全局变量也是如此?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2017-09-22
    • 2023-04-03
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多