【发布时间】:2018-02-27 06:44:13
【问题描述】:
我遇到了一个意外问题。这是简化的代码:
class test():
def __init__(self,name):
self.name = name
def __private(self):
print(self.name)
def public(self):
exec("self.__private()")
obj = test('John')
obj.public()
有谁知道我如何在不删除 exec 语句的情况下使这段代码工作?
【问题讨论】:
-
这不是私有方法。 Python 中没有“私有”之类的东西。
-
@Ignacio Vazquez-Abrams 如果你像 obj.__private() 那样调用它,它是最接近私有函数的函数,它会返回错误
-
它不是任何私有的。它不是为了让事情变得私密。这是为了防止在使用多重继承时发生属性名称冲突。
-
@Daan 你试过不带
exec的self.__private()吗? -
你为什么需要
exec?这对我来说似乎是一个 XY 问题。
标签: python python-3.x exec