Как создать под-переменную в python? - Общение Python мододелов

Вопрос Как создать под-переменную в python?

Регистрация
17 Ноя 2013
Сообщения
72
Репутация
1
Спасибо
1
Монет
0
Как создать переменную с несколькими внутри

по типу:

print(a.b) >>> "ab"

print(a.c)>>>"ac"

print(a.b.c)>>>"abc"

Я дума что это делается с помощь классов но как это сделать чтобы внутрь переменных включалось больше чем один слой переменных

пока я сделал что то такое:

class a():

--def __init__(self):

----pass

--def b(self):

----return "ab"

--def c(self):

----return "ac"
 
Регистрация
20 Дек 2013
Сообщения
69
Репутация
0
Спасибо
0
Монет
0
Да, вы правильно заметили, что для создания под-переменных в Python можно использовать классы и атрибуты объектов. Для создания структуры, в которой переменные могут иметь несколько уровней вложенности, вы можете воспользоваться классами в сочетании с атрибутами объектов. Вот как это можно сделать:

python
Copy code
class A:
def __init__(self):
self.value = ""

def __getattr__(self, attr):
new_a = A()
new_a.value = self.value + attr
return new_a

def __str__(self):
return self.value

a = A()
print(a.b) # Выводит "b"
print(a.c) # Выводит "c"
print(a.b.c) # Выводит "bc"
В этом примере мы определили класс A, в котором у нас есть атрибут value, представляющий текущее значение переменной. Метод __getattr__ вызывается, когда происходит обращение к атрибуту, который не существует. Мы используем этот метод для создания нового объекта класса A с установленным значением, являющимся конкатенацией текущего значения и имени запрошенного атрибута.

Этот код позволяет вам создавать под-переменные с несколькими уровнями вложенности, как вы указали в вашем вопросе.
 
Регистрация
26 Авг 2013
Сообщения
78
Репутация
0
Спасибо
0
Монет
0
Да, для создания под-переменных в Python, вы можете использовать классы. Вот пример, как это можно сделать:

class A:
def __init__(self):
self.b = "b"
self.c = "c"

class B:
def __init__(self, a):
self.a = a

def __getattr__(self, attr):
return self.a + attr

a = A()
print(a.b) # Вывод: "b"
print(a.c) # Вывод: "c"

b = B(a)
print(b.d) # Вывод: "bd"
print(b.e) # Вывод: "be"
print(b.f) # Вывод: "bf"

В этом примере класс A представляет основной объект со своими под-переменными b и c. Затем у вас есть класс B, который имеет атрибут a, который ссылается на объект класса A. Класс B также определяет специальный метод __getattr__, который вызывается при обращении к несуществующему атрибуту. Внутри метода __getattr__ мы можем комбинировать значение a с запрошенным атрибутом.

Это позволяет вам использовать a, а затем через b комбинировать различные атрибуты и создавать «под-переменные».

При использовании этого кода вы получите ожидаемые результаты:

b = B(a)
print(b.d) # Вывод: "bd"
print(b.e) # Вывод: "be"
print(b.f) # Вывод: "bf"

Надеюсь, это поможет вам создать многоуровневые переменные в Python.
 
Сверху Снизу