Python 如何从不同的文件类函数导入变量
我的Python 如何从不同的文件类函数导入变量,python,Python,我的测试资源.py是 self.assertFalse(b.__is_manual) AttributeError: 'BaseResource' object has no attribute '_Resources__is_manual' class Resources(TestCase): def test_disable_manual_mode(self): self.assertFalse(b.__is_manual) if __name__=='__ma
测试资源.py
是
self.assertFalse(b.__is_manual) AttributeError: 'BaseResource' object has no attribute '_Resources__is_manual'
class Resources(TestCase):
def test_disable_manual_mode(self):
self.assertFalse(b.__is_manual)
if __name__=='__main__':
b = base.BaseResource()
unittest.main()
我的base.py
是
self.assertFalse(b.__is_manual) AttributeError: 'BaseResource' object has no attribute '_Resources__is_manual'
class Resources(TestCase):
def test_disable_manual_mode(self):
self.assertFalse(b.__is_manual)
if __name__=='__main__':
b = base.BaseResource()
unittest.main()
它们都在同一个目录中,我想在测试资源.py
我该怎么做呢
我试过b.。\u是手动的,但它给出了错误(如上所述)根据
Python中不存在只能从对象内部访问的“Private”实例变量。但是,大多数Python代码都遵循一种约定:带有下划线前缀的名称(例如_spam)应被视为API的非公共部分(无论是函数、方法还是数据成员)。应将其视为实施细节,如有变更,恕不另行通知。
对象的实例化必须在测试类内部
class BaseResource(object):
def __init__(self, index=0, parent=None, **kwargs):
self.is_manual = False
def disable_manual_mode(self):
self.is_manual = False
将属性命名为\u\u是\u manual
时,您将其定义为“受保护”属性,无法访问它。简化代码
class BaseResource(object):
def __init__(self, index=0, parent=None, **kwargs):
self.__is_manual = False
def disable_manual_mode(self):
self.__is_manual = False
此外,对象的实例化必须在测试类内部
class BaseResource(object):
def __init__(self, index=0, parent=None, **kwargs):
self.is_manual = False
def disable_manual_mode(self):
self.is_manual = False
我们无法访问\uuuu是\uu手册。因为我们不能访问以_u(双下划线)开头的变量。@AbhishekYadav我改进了答案。但是如果我有多个方法,那么我需要多次实例化对象