मैं कुछ hacky जवाब है भयानक होने की संभावना है ... लेकिन इस बिंदु पर मुझे बहुत कम अनुभव है।
एक तरह से:
class myClass():
myInstances = []
def __init__(self, myStr01, myStr02):
self.myStr01 = myStr01
self.myStr02 = myStr02
self.__class__.myInstances.append(self)
myObj01 = myClass("Foo", "Bar")
myObj02 = myClass("FooBar", "Baz")
for thisObj in myClass.myInstances:
print(thisObj.myStr01)
print(thisObj.myStr02)
एक हैक तरीका यह किया जाना:
import sys
class myClass():
def __init__(self, myStr01, myStr02):
self.myStr01 = myStr01
self.myStr02 = myStr02
myObj01 = myClass("Foo", "Bar")
myObj02 = myClass("FooBar", "Baz")
myInstances = []
myLocals = str(locals()).split("'")
thisStep = 0
for thisLocalsLine in myLocals:
thisStep += 1
if "myClass object at" in thisLocalsLine:
print(thisLocalsLine)
print(myLocals[(thisStep - 2)])
#myInstances.append(myLocals[(thisStep - 2)])
print(myInstances)
myInstances.append(getattr(sys.modules[__name__], myLocals[(thisStep - 2)]))
for thisObj in myInstances:
print(thisObj.myStr01)
print(thisObj.myStr02)
एक और अधिक 'चतुर' हैक:
import sys
class myClass():
def __init__(self, myStr01, myStr02):
self.myStr01 = myStr01
self.myStr02 = myStr02
myInstances = []
myClasses = {
"myObj01": ["Foo", "Bar"],
"myObj02": ["FooBar", "Baz"]
}
for thisClass in myClasses.keys():
exec("%s = myClass('%s', '%s')" % (thisClass, myClasses[thisClass][0], myClasses[thisClass][1]))
myInstances.append(getattr(sys.modules[__name__], thisClass))
for thisObj in myInstances:
print(thisObj.myStr01)
print(thisObj.myStr02)
स्रोत
2018-01-15 16:59:30
आप प्रकार वस्तुओं की एक सूची मतलब क्या ('[प्रकार (एक्स), ...]') या एक वर्ग के उदाहरण ('[1, 2, 3]')? – Skurmedel
@ स्कुरमेडेल: कक्षा के उदाहरण। मैंने इसे विशेष रूप से प्रश्न में वर्णित किया है :) – user225312
@Alfred: हे, मुझे बस क्लास उदाहरण थोड़ा अस्पष्ट लगता है, लेकिन मुझे लगता है कि अब चयनित उत्तर के माध्यम से आपका क्या मतलब है: पी – Skurmedel