如何访问存储在父类/对象 (python) 中的值



以下不是我的代码,而是我必须使用的代码...

class MediaRoot:
  def __init__(self, type):
    self.name = ''
    self.year = None
    self.type = type
    self.parts = []
    self.subtitles = []
    self.thumbs = []
    self.arts = []
    self.trailers = []
    self.released_at = None
    self.display_offset = 0
    self.source = None
    self.themes = []
class Movie(MediaRoot):
  def __init__(self, name, year=None):
    MediaRoot.__init__(self,'Movie')
    self.name = name
    self.year = year
    self.guid = None

我有一个名为"media"的对象,类型为 Movie,我可以使用其名称和年份属性并执行所有标准操作。我也知道我非常想访问存储在"源"中的值,但是每当我尝试它时,它都会因以下错误而爆炸:

  File "/Users/john/Library/Application Support/Plex Media Server/Plug-ins/Framework.bundle/Contents/Resources/Versions/2/Python/Framework/api/agentkit.py", line 626, in __getattr__
    return object.__getattr__(self, name)
AttributeError: type object 'object' has no attribute '__getattr__'

这个属性是永远遥不可及的吗?

您的 MediaRoot 对象不是从对象子类化的,因此没有像 Python 对象通常那样具有__getattr__方法。 试试这个:

class MediaRoot(object):

你有...:

class MediaRoot:

在 Python 2 中,除非你有全局级别的__metaclass__ = type,否则这是一个旧式的类(没有人应该再使用它了!)——它需要

class MediaRoot(object):

如果,正如你所说,你无法修复这个错误,我认为没有补救措施。

回溯中实际显示的agentkit.py中的代码也有问题,但MediaRoot是旧式类是第一个问题。

相关内容

  • 没有找到相关文章

最新更新