繁体   English   中英

Python:如何从另一个文件访问属性? 从文件名导入 class 无效

[英]Python: How to access property from another file ? from file name import class didn't work

我是 Python 编程的新手。 我在文件 A 的 class 中拥有由 getter 和 setter 组成的属性。

class Histogram:
    def getHue(self):
        return self.value

    def setHue(self, value):
        self.varHueHist = value

    HueHist = property(getHue, setHue)

我想从另一个文件B中的另一个class访问该属性。但是在我导入文件A和文件B中的class后,仍然无法访问该属性。

from Histogram import Histogram

class moment:
   var = Histogram()

无法访问该属性。 当我尝试在我的 Spyder 中使用自动完成 (Ctrl+空格) 时,该属性也没有显示。 不幸的是,当我试图在与该属性相同的文件中访问 class 内的属性时,该属性是可读的。 如何从另一个文件中的 class 内部调用属性?

这两个文件已经在同一个文件夹中。 请帮忙。 谢谢

您尝试做的是使用描述符实现的。 你可以在这里看到更多:

https://docs.python.org/3/howto/descriptor.html

所以你的代码应该是这样的:

class Histogram:
 
  def __set_name__(self, owner, name):
     self.public_name = name
     self.private_name = '_' + name

  def __get__(self, obj, objtype=None):
     return getattr(obj, self.private_name)

  def __set__(self, obj, value):
     setattr(obj, self.private_name, value)

现在您可以调用它,它将作为描述符设置并相应地获取。

import Histogram

class Moment:
    var = Histogram()

此外,文件位于同一文件夹中并不意味着导入将起作用。 您应该在文件夹内创建一个init .py 空文件,然后执行

from folder.file import class_name

或者您可以将文件夹添加到路径中:

import sys
sys.path.extend(['complete_path_to_the_folder_where_code_is'])

我不是专业人士,但我想你的问题在这里得到了回答

从另一个文件导入 class

从不同文件夹导入文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM