Изменить атрибут из класса и все атрибуты на его основе в Python3 - PullRequest
0 голосов
/ 31 марта 2020

Я создал класс, такой как:

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...