Я создал класс, такой как:
class MyClass:
def __init__(self):
self.home = os.path.expanduser("~")
self.basefolder = os.path.join(self.home,'tmp_results')
self.dir1 = os.path.join(self.basefolder,'dir1')
self.dir2 = os.path.join(self.basefolder,'dir2')
def check_path(self):
if os.path.isdir(self.basefolder) is False:
os.mkdir(self.basefolder)
if os.path.isdir(self.dir1) is False:
os.mkdir(self.dir1)
if os.path.isdir(self.dir2) is False:
os.mkdir(self.dir2)
, и затем у меня есть мой тест, подобный этому:
import unittest
class TestMyClass(unittest.TestCase):
def setUp(self):
self.list_test = './tests/data/list_test.txt'
def test_check_path(self):
p1 = MyClass()
p1.home = './tests/data'
print(p1.home)
print(vars(p1))
Проблема в том, что атрибут MyClass self.dir1
и self.dir2
не изменяются при изменении атрибута self.home
.
Как можно изменить другие атрибуты, основанные на атрибуте self.home
? Я что-то здесь упускаю, и я не смог найти никакой информации в pythhon do c относительно моей проблемы.
Является ли то, что я хочу сделать, "правильным" Python synthax?