new class-instance is not getting initialized

Axel Straschil axel at pizza.home.kosnet.com
Sat Mar 15 17:52:04 EST 2003


Hi!

Im writing a couple of classes to create html-code. There is on funny thing:
If I'm creating two instances of an class, it looks like the second is 
ist a pointer to the first one!

If I do:
	print input_text(size=1).get()
	print input_text().get()
I get:
	<input size="1" type="text" />
	<input size="1" type="text" />
where I expect:
	<input size="1" type="text" />
	<input type="text" />

I've got realy no idea why!?
The exampe-code ist (sorry for that long code-posting):

class _flags:
	def __init__(self, flags=[]):
		self.flags = flags
	def setFlag(self, flag):
		if (self.flags.count(flag)==0):
			self.flags.append(flag)
	def delFlag(self, flag):
		while (self.flags.count(flag)>0):
			self.flags.remove(flag)
	def getFlags(self):
		s=''
		for f in self.flags:
			s = s + " %s=\"%s\""%(f, f)
		return s

class _properties:
	def __init__(self, props={}):
		self.props = props
	def setProp(self, prop, value):
		self.props[prop] = value
	def getProp(self, prop):
		return self.props[prop]
	def delProp(self, prop):
		del self.props[prop]
	def getProps(self):
		s=''
		for p, v in self.props.items():
			s = s + " %s=\"%s\""%(p, v)
		return s

class _tag(_flags, _properties):
	def __init__(self, tag, flags=[], props={}, Class=None):
		_flags.__init__(self, flags=flags)
		_properties.__init__(self, props=props)
		self.tag = tag
		if Class is not None:
			self.setProp(prop='class', value=Class)
	def tagLget(self):
		return "<%s%s%s>"%(self.tag, self.getFlags(), self.getProps())
	def tagRget(self):
		return "</%s>"%(self.tag)
	def tagSget(self):
		return "<%s%s%s />"%(self.tag, self.getFlags(), self.getProps())
	def get(self):
		return "%s" % self.tagSget()

class _tag_content(_tag):
	def __init__(self, tag, content=None, flags=[], props={}, Class=None):
		_tag.__init__(self, tag=tag, flags=flags, props=props, Class=Class)
		if content is None:
			content=''
		self.content = content 
	def add(self, content):
		self.content = self.content + content
	def set(self, content):
		self.content = content
	def get(self):
		return "%s%s%s" % (_tag.tagLget(self), self.content, _tag.tagRget(self))

class input(_tag):
	def __init__(self, type=None, name=None, value=None, size=None, flags=[], 
			props={}, Class=None):
		_tag.__init__(self, 'input', flags=flags, props=props, Class=Class)
		if not type is None:
			self.setProp('type', type)
		if not name is None:
			self.setProp('name', name)
		if not value is None:
			self.setProp('value', value)
		if not size is None:
			self.setProp('size', size)


class input_text(input):
	def __init__(self, name=None, value=None, size=None, flags=[], props={}, 
			Class=None):
		input.__init__(self, 'text', name=name, value=value, size=size, 
			flags=flags, props=props, Class=Class)


print input_text(size=1).get()
print input_text().get()

Thanks,
AXEL.




More information about the Python-list mailing list