提问人:FraSchelle 提问时间:10/14/2022 更新时间:10/14/2022 访问量:87
如何从 Python 中的子类访问 dundle 方法?
How to access dundle method from a subclass in Python?
问:
我有一种方法可以直接访问 Python 子类中的 dundle 方法?
想象一下,我有以下课程:
class Parent(object):
def __init__(self, x):
self.x = x
def __add(self,y):
return self.x + y
def addition(self,y):
return self.__add(y)
class Children(Parent):
def add(self,y):
return self.__add(y)
我显然可以实例化这两个类,并在两个类上使用,但我不能使用 from 的实例。如何访问从类继承到类的方法?addition
add
Children
__add
Parent
Children
p = Parent(2)
p.addition(4)
c = Children(5)
c.addition(4)
所有这些调用都有效,但以下两个调用不起作用
p.__add(5) # AttributeError: 'Parent' object has no attribute '__add'
c.add(4) # AttributeError: 'Children' object has no attribute '_Children__add'
两者都返回 not 属性。第一个行为是预期的,我不想改变,但第二个行为让我感到不安,因为子类应该能够访问其父隐藏方法,不是吗?
更多细节 : 实际上,在我的情况下,父类正在处理数据库连接,并处理用户名和密码,并使用一些我更喜欢让“私有”的方法来检查密码。我想从不同的子类调用,这些子类稍后处理数据操作。__check_password
__check_password
答: 暂无答案
评论
return self._Parent__add(y)
?请参阅名称修改。__private
__private
_protected
public
__check_password