getattr()函数__和_的区别

为什么双下划线开头不行

#正确
fun=getattr(self,'_%s_login'%text)

错误 ,报错AttributeError: 'LoginInterface' object has no attribute '__manager_login'

#
fun=getattr(self,'__%s_login'%text)

这个要看类的定义了。它定义属性就是定义的双下划线开头(表示私有属性)。所以你调用也得一致才行。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^