Для указателей и связанных списков, кажется, ваш ответ здесь: https://www.codefellows.org/blog/implementing-a-singly-linked-list-in-python/
В общем:
Как только вы передаете значение, которое будет присвоено a , оба a и b инициализируются. Так как ваш класс не выполняет итерации по значениям, значение b не будет обновляться просто потому, что значение a было переназначено. Вы должны повторно вызвать класс, чтобы сделать это.
Если вы назначаете вручную, как в своем посте, вы можете сделать это:
class Tester():
def __init__(self,a):
self.a = a
self.b = a+5
Hank = Tester(0)
print(Hank.a,Hank.b)
Hank = Tester(5)
print(Hank.a,Hank.b)
Возврат:
0 5
5 10
Или более элегантно (конечно, нужно обновить в зависимости от диапазона / значения / того, что вы ищете):
class Tester():
def __init__(self,a):
self.a = a
self.b = a+5
i = 0
while i <= 100:
Hank = Tester(i)
print(Hank.a, Hank.b)
i+=5
Возврат:
0 5
5 10
10 15
15 20
20 25
25 30
30 35
35 40
40 45
45 50
50 55
55 60
60 65
65 70
70 75
75 80
80 85
85 90
90 95
95 100
100 105
Наконец,Вы не печатаете запятые, как предполагает ваш пост. Вам нужно добавить их в строку. Одним из примеров является обновление оператора печати с использованием f-строки:
print(f"{Hank.a}, {Hank.b}")
Результат:
0, 5
5, 10
10, 15
15, 20
20, 25
25, 30
30, 35
35, 40
40, 45
45, 50
50, 55
55, 60
60, 65
65, 70
70, 75
75, 80
80, 85
85, 90
90, 95
95, 100
100, 105