Форум сайта python.su
Весь код:
class Basa(): name1 = "Да" name2 = "Нет" print(Basa.name1)
print(Basa.name2)
print(Basa.name + (1+1))
Офлайн
у меня появилось недорешение:
name1 = "Да" name2 = "Нет" print(eval("name" + str(1+1)))
name1 = "Да" name2 = "Нет"
class Basa: name1 = "Да" name2 = "Нет"
Офлайн
Wylamin
но я хочу сделать это по принципу
print(Basa.name + (1+1))
Офлайн
WylaminВы можете хотеть чего угодно. Если пользуетесь языком python то должны пользоваться его правилами. Если правила не нравятся и вам нужны свои, то берете и пишете свой язык программирования. Все просто :).
, но я хочу сделать это по принципу
print(Basa.name + (1+1))
, но так не работает
print(Basa.name2)
print(eval("name" + str(1+1)))
print(eval("Basa.name" + str(1+1)))
Офлайн
doza_andв примере с print(“name” + str(1+1))
Отредактировано Wylamin (Май 7, 2022 15:23:22)
Офлайн
xam1816типо база данных
Офлайн
WylaminДа это всё не делается вообще никогда. Поэтому можешь делать, как хочешь. Для динамического формирования имён можно использовать функцию setattr().
Я записал name1, name2 в другой файл как переменные и импортировал его в свой основной и пользовался функцией eval
>>> class A: pass ... >>> >>> setattr(A, 'n', 1) >>> >>> A.n 1 >>> >>> setattr(A, 'n' + str(2), 2) >>> >>> A.n2 2 >>>
Офлайн