为什么我不能在Python中访问超类的私有变量?

前端之家收集整理的这篇文章主要介绍了为什么我不能在Python中访问超类的私有变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我知道我应该使用访问方法.我在datetime模块中看到类datetime继承自date.

class datetime(date):
    

我还看到datetime能够访问日期成员,如__repr__:

def __repr__(self):
    """Convert to formal string,for repr()."""
    L = [self._year,self._month,self._day,# These are never zero
         self._hour,self._minute,self._second,self._microsecond]

我试图将datetime子类化为其添加一些信息,然后编写一个类似的__repr__函数

def __repr__(self):
    """Convert to formal string,self._microsecond,self._latitude,self._longitude]

调试器抱怨self._year不存在. (然而,自己的作品.)

我知道我应该使用访问功能.我只想了解为什么datetime能够访问date的私有变量但我的子类不能.

最佳答案
如果你看一下end of datetime.py,你会看到:

try:
    from _datetime import *
except ImportError:
    pass

这会导入以前定义的python类的C版本,因此将使用它们,而那些没有您尝试访问的成员.

原文链接:https://www.f2er.com/python/439296.html

猜你在找的Python相关文章