Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2018 18:29:37

Voroshek
От:
Зарегистрирован: 2011-03-11
Сообщения: 54
Репутация: +  0  -
Профиль   Отправить e-mail  

Пересоздать объект внутри объекта

 import random
class First_class:
  def __init__(self):
    x = random.randint(0, 1000)
class Second_class:
  def __init__(self, y):
    y = First_class()
obj_1 = First_class()
obj_2 = Second_class(obj_1)
Чтобы при создании obj_2 переменная obj_1 создавалась заново. Идея записать в конструкторе Second_class
 y.x = random.randint(0, 1000)
не фонтан, так как в конструкторе First_class переменная х обрабатывается дальше.



python3 openSUSE-43Leap

Офлайн

#2 Март 9, 2018 21:27:33

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Пересоздать объект внутри объекта

Voroshek Что вы вообще хотите сделать? Вы вообще понимаете что такое переменные и как оно все работает в пайтоне? Расскажите подробнее, потому как мне кажеться, ваша проблема имеет блее простое решение.
Ради занудства, можно сделать так, если устроит такой вариант?:

 #
import random
class First_class:
  def __init__(self):
    x = random.randint(0, 1000)
class Second_class:
  def __init__(self):
    pass
def create_second_class():
    obj1 = First_class()
    obj2 = Second_class()
    return obj2, obj1
obj_1 = First_class()
print(id(obj_1), type(obj_1))
obj_2, obj_1 = create_second_class()
print(id(obj_1), type(obj_1), id(obj_2), type(obj_2))
>>> 
51199856 <class '__main__.First_class'>
51199824 <class '__main__.First_class'> 51228816 <class '__main__.Second_class'>
>>> 



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Март 9, 2018 21:56:28)

Офлайн

#3 Март 9, 2018 22:23:56

Voroshek
От:
Зарегистрирован: 2011-03-11
Сообщения: 54
Репутация: +  0  -
Профиль   Отправить e-mail  

Пересоздать объект внутри объекта

В файле list.py хранится словарь вида

 content = { int_value: ("text_value", data_1, data_2, ...), ...}
В объекте класса Text рандомно выбирается один элемент словаря, и текст обрабатывается в соответствии со значениями data.
В классе Interface создаётся c помощью tkinter отображается текст, для чего ему передаётся объект Text. Также окно имеет кнопку “случайный выбор”, присваивающий объекту Text новый элемент словаря. Именно на этом я и запнулся.
Кроме того в Toplevel будет создан полный список элементов для возможности присвоить объекту Text значение выбранного элемента словаря.
Как-то так.



python3 openSUSE-43Leap

Офлайн

#4 Март 10, 2018 00:41:15

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Пересоздать объект внутри объекта

Voroshek
Именно на этом я и запнулся.
Хмм, А в чем собственно проблема? присваивайте ему новый элемент, зчем создавать новый обьект?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version