Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 11, 2015 16:59:59

Strelok-den
Зарегистрирован: 2014-03-25
Сообщения: 63
Репутация: +  0  -
Профиль   Отправить e-mail  

Переопределения символа подстановки в строку...

Возможно ли заменить?:
print “”“text name: %(nama)s”“” % vars()
или
print “”“text name: {name}”“”.format(name)

на:

print “”“text name: %%(nama)s”“” % vars()
или
print “”"text name: “”".format(name)

Спасибо)

Офлайн

#2 Янв. 11, 2015 20:45:55

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Переопределения символа подстановки в строку...

только изменяя исходники пайтона

ну можно так

text = mystring("”“text name: %%(nama)s”“")
print text % vars()
если пойдет могу написать код



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Янв. 11, 2015 20:46:23)

Офлайн

#3 Янв. 11, 2015 20:57:38

Strelok-den
Зарегистрирован: 2014-03-25
Сообщения: 63
Репутация: +  0  -
Профиль   Отправить e-mail  

Переопределения символа подстановки в строку...

terabayt
только изменяя исходники пайтонану можно так
Желательно что то похоже на
'[name]' или '%%(nama)'
без ‘s’, если это возможно.
Напишите пожалуйста)

Отредактировано Strelok-den (Янв. 11, 2015 20:58:56)

Офлайн

#4 Янв. 11, 2015 21:32:09

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Переопределения символа подстановки в строку...

class mystring(str):
	def __init__(self, s):
		self.s = s
	def __mod__(self, a):
		for i in xrange(self.s.count('%%(')):
			b = self.s.find('%%(')
			e = self.s.find(')', b)
			self.s = self.s[:b] + a[self.s[b+3: e]] + self.s[e+1:]
		return self.s
 
s = mystring('hi %%(name) %%(lastname)')
print s % {'name': 'Ivan', 'lastname': 'Ivanov'}
 
s2 = mystring('hi %%(key)')
v = {'key': 'world'}
print s2 % v
но это костылище! не думаю что есть такая проблема которая не может решиться более красиво!



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Янв. 11, 2015 21:48:05)

Офлайн

#5 Янв. 11, 2015 23:22:49

Strelok-den
Зарегистрирован: 2014-03-25
Сообщения: 63
Репутация: +  0  -
Профиль   Отправить e-mail  

Переопределения символа подстановки в строку...

terabayt
Спасибо!) интересное решение хоть и костыль)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version