Уведомления

Группа в Telegram: @pythonsu

#1 Май 5, 2022 20:20:45

Wylamin
Зарегистрирован: 2022-05-05
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

из name1 в name2

Весь код:

 class Basa():
    name1 = "Да"
    name2 = "Нет"
print(Basa.name1)

В терминале получится:
>>> Да
Но я хочу чтобы получилось нет, то есть
 print(Basa.name2)
, но я хочу сделать это по принципу
 print(Basa.name + (1+1))
, но так не работает

Офлайн

#2 Май 5, 2022 20:31:00

Wylamin
Зарегистрирован: 2022-05-05
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

из name1 в name2

у меня появилось недорешение:

 name1 = "Да"
name2 = "Нет"
print(eval("name" + str(1+1)))
решается с помощью eval()
но мне нужно не
 name1 = "Да"
name2 = "Нет"
а нужно
 class Basa:
    name1 = "Да"
    name2 = "Нет"

Офлайн

#3 Май 5, 2022 20:54:07

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1378
Репутация: +  123  -
Профиль   Отправить e-mail  

из name1 в name2


Wylamin
но я хочу сделать это по принципу
print(Basa.name + (1+1))

для чего такие выкрутасы?

Офлайн

#4 Май 6, 2022 22:04:22

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

из name1 в name2

Wylamin
, но я хочу сделать это по принципу

print(Basa.name + (1+1))

, но так не работает
Вы можете хотеть чего угодно. Если пользуетесь языком python то должны пользоваться его правилами. Если правила не нравятся и вам нужны свои, то берете и пишете свой язык программирования. Все просто :).

При написании языков питона, или своего требуется логичность мышления.

Если вы пишете
 print(Basa.name2)
То почему тогда во втром примере
 print(eval("name" + str(1+1)))
а не:
 print(eval("Basa.name" + str(1+1)))
???



Офлайн

#5 Май 7, 2022 15:08:23

Wylamin
Зарегистрирован: 2022-05-05
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

из name1 в name2

doza_and
в примере с print(“name” + str(1+1))
у меня не было объектов, у меня были переменные name1 и name2
в общем я решил его
Я записал name1, name2 в другой файл как переменные и импортировал его в свой основной и пользовался функцией eval

Отредактировано Wylamin (Май 7, 2022 15:23:22)

Офлайн

#6 Май 7, 2022 15:23:44

Wylamin
Зарегистрирован: 2022-05-05
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

из name1 в name2

xam1816
типо база данных

Офлайн

#7 Май 8, 2022 01:31:57

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9930
Репутация: +  856  -
Профиль   Отправить e-mail  

из name1 в name2

Wylamin
Я записал name1, name2 в другой файл как переменные и импортировал его в свой основной и пользовался функцией eval
Да это всё не делается вообще никогда. Поэтому можешь делать, как хочешь. Для динамического формирования имён можно использовать функцию setattr().
  
>>> class A: pass
... 
>>> 
>>> setattr(A, 'n', 1)
>>> 
>>> A.n
1
>>> 
>>> setattr(A, 'n' + str(2), 2)
>>> 
>>> A.n2
2
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version