Portál AbcLinuxu, 7. listopadu 2025 02:28
class entity:
name = ""
def __init__(self, name):
self.name = name
self.asset = self.asset()
def say_hello(self):
print "Hello, my name is " + self.name
class asset:
def describe_yourself(self):
print "This is [ZDE SE MA VYPSAT OBSAH PROMENNE name Z PARENT CLASS]'s inherent asset"
#create virtual object
dezo = entity("Dezo")
#call methods owned by virtual object
dezo.say_hello()
dezo.asset.describe_yourself()
class Entity:
def __init__(self, name):
self.name = name
def say_hello(self):
print "Hello, my name is " + self.name
def describe(self):
print "This is " + self.name + "'s inherent asset"
#create virtual object
dezo = Entity("Dezo")
#call methods owned by virtual object
dezo.say_hello()
dezo.describe()
Jenom upozorňuji, že by bylo lepší, kdyby v té třídě žádný print nebyl...
class asset_tmp:
def describe_yourself(self):
print "This is [ZDE SE MA VYPSAT OBSAH PROMENNE name Z PARENT CLASS]'s inherent asset"
class entity:
name = ""
def __init__(self, name):
self.name = name
self.asset = self.asset()
def say_hello(self):
print "Hello, my name is " + self.name
asset = asset_tmp
asset_tmp.__name__ = "asset" # pro puristy
del asset_tmp
…ergo i kdyby se ti to povedlo nejak zaridit tak to stejne nejspis nebude delat to co potrebujes nebo to bude zbytecne slozity.
class Asset(object):
def __init__(self, cls):
self.cls = cls
def describe_yourself(self):
print "This is %s's inherent asset" % self.cls.name
class Entity(object):
name = ""
def __init__(self, name):
self.name = name
self.asset = Asset(self)
def say_hello(self):
print "Hello, my name is " + self.name
Klidne to muzes vrazit do namespace tridy, ale nedava smysl to takhle svazovat kdyz Asset objekt muzes aplikovat na libovolny jiny objekt. A cely je to cviceni v marnosti pacz kdyz se na to podiva pythonista, tak uvidi jenom zbytecne prekomplikovany zpusob jak napsat dezo.__name__.
entity přidat jediný řádek:
self.asset.name = name
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.