Перейти к содержимому

Как из одного класса передать данные в другой класс python

  • автор:

Как передать список из одного класса в другой?

В виджете Label класса Text необходимо указать принадлежность к фрейму, который создается в класса Frames , значение, а точнее список фреймов, с параметрами, сохраняются в список self.List_frames , требуется передать этот список в класс Text , а затем указать в виджете Label принадлежность к одному из фреймов в списке, обратившись к нему по индексу, как лучше всего это реализовать?

from tkinter import * import tkinter as tk root = Tk() root.title('Python') root.geometry('605x400') root.resizable(width = False, height = False) # Класс реализации фреймов class Frames(): # Инициализация заданых параметров def __init__(self, background_line, width_line, height_line): self.background_line = background_line self.width_line = width_line self.height_line = height_line # Лист фреймов self.List_frames = [] # Лист имен фреймов self.List_name_frames = ['One_line', 'Two_line', 'Three_line', 'Four_line', \ 'Five_line', 'Six_line', 'Seven_line', 'Eight_line',\ 'Nine_line', 'Ten_line'] # Создание фреймов, присвоение параметров к фреймам, запись фреймов в список for name_line in self.List_name_frames: name_line = Frame(root, background = self.background_line, \ width = self.width_line, height = self.height_line) self.List_frames.append(name_line) # Вызов созданных фреймов с параметрами на экран for line in self.List_frames: line.pack(anchor = W) line.pack_propagate(False) # Класс реализации текста class Text(): def __init__(self, text, background_text, font_text, foreground_text, width_texts): self.Pixel_Virtual = tk.PhotoImage(width = 1) self.text = text self.background_text = background_text self.font_text = font_text self.foreground_text = foreground_text self.width_text = width_texts # Создание текстового поля [День:] Day = Label(image = self.Pixel_Virtual, text = self.text, background = self.background_text, font = self.font_text, foreground = self.foreground_text, width = self.width_text) # Создаем обьект класса фреймов # Параметры: цвет фона, ширина, высота call_Frames = Frames('olivedrab', 605, 40) # Создаем обьект класса текста # Параметры: текст, цвет фона, стиль текста, цвет текста, ширина блока с текстом call_Text = Text('День', 'green', 'Arial 12', 'black', 40) root.mainloop() 

Передача объекта из одного класса в другой

Надо перенести объект self.name из класса в timeofpersonedit в NewPersonEdit как осуществить?

Отслеживать

задан 15 ноя 2018 в 15:50

khalinmaxim khalinmaxim

633 11 11 серебряных знаков 25 25 бронзовых знаков

Опубликовав свой код полностью, вы увеличите получение решения на ваш вопрос.

15 ноя 2018 в 16:12

Мне надо перенести в def init

15 ноя 2018 в 16:14

перенести в def init — что?

15 ноя 2018 в 16:17

Из класса timeofpersonedit перенести значение объекта self.name в класс NewPersonEdit в объект self.name1

Как из одного класса добраться в другой?

Только недавно начал изучать классы, посмотрите пожалуйста мой код и подскажите как из одного экземпляра класса в Python добраться в другой!

class User: def __init__(self, user_fields): # так можно делать? for k, v in user_fields.items(): self.__dict__.__setitem__(k, v) def save(self): print('Как отсюда можно получить доступ к переменной token в MyApi или вызвать some_func() . ') class MyApi: def __init__(self, token, users_data): self.token = token self.users = [User(user) for user in users_data] def some_func(self): print(self.token) users_data = [ < 'name': 'andrey', 'age': 25 >, < 'name': 'dima', 'age': 12 >] api = MyApi('12345', users_data) user = api.users[0] user.save() print('User name:', user.name)

Вот мой вариант решения:

class User: def __init__(self, api, user_fields): # так можно делать? for k, v in user_fields.items(): self.__dict__.__setitem__(k, v) def save(self): print('Вызываю some_func() из class User, token:', api.some_func()) class MyApi: def __init__(self, token, users_data): self.token = token self.users = [User(self, user) for user in users_data] def some_func(self): return self.token users_data = [ < 'name': 'andrey', 'age': 25 >, < 'name': 'dima', 'age': 12 >] api = MyApi('12345', users_data) user = api.users[0] user.save()
  • Вопрос задан более года назад
  • 88 просмотров

4 комментария

Простой 4 комментария

Импорт класса из другого файла

Мне нужно перенести оттуда класс Player в другой файл. Проблема в том, что в классе используются переменные которые определяются до него, и мне бы не хотелось переписывать эти переменные в новый файл тоже. Каким образом можно правильно вынести класс Player в другой файл для дальнейшего импорта?

Отслеживать
12.5k 7 7 золотых знаков 19 19 серебряных знаков 48 48 бронзовых знаков
задан 5 янв 2021 в 10:14
3 1 1 серебряный знак 3 3 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Думается мне, что лучше будет сделать так:

vars.py
#ваши переменные, которые вы не хотите переписывать

player.py
#class Player(): .

main.py

from player import Player from vars import * . 

Отслеживать
ответ дан 5 янв 2021 в 11:06
11.8k 2 2 золотых знака 10 10 серебряных знаков 28 28 бронзовых знаков
Спасибо!Для того, чтобы все заработало я добавил from vars import * еще и в файл player.py
5 янв 2021 в 11:37

  • python
  • python-3.x
  • pygame
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.12.7.2316

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://alkogolizm-zhi.vyvod-iz-zapoya-na-domu-sankt-peterburg-abc.ru/