आप अंतर्निहित सूची प्रकार को उपclass कर सकते हैं और 'append' विधि को फिर से परिभाषित कर सकते हैं। या इससे भी बेहतर, एक नया बनाएं जो वह करेगा जो आप करना चाहते हैं। नीचे एक परिभाषित 'संलग्न' विधि के लिए कोड है।
#!/usr/bin/env python
class MyList(list):
def append(self, element):
return MyList(self + [element])
def main():
l = MyList()
l1 = l.append(1)
l2 = l1.append(2)
l3 = l2.append(3)
print "Original list: %s, type %s" % (l, l.__class__.__name__)
print "List 1: %s, type %s" % (l1, l1.__class__.__name__)
print "List 2: %s, type %s" % (l2, l2.__class__.__name__)
print "List 3: %s, type %s" % (l3, l3.__class__.__name__)
if __name__ == '__main__':
main()
आशा है कि मदद करता है।
स्रोत
2012-10-15 20:04:46
एक ही सूची के बजाय 'append()' वापस 'कोई नहीं' के पीछे तर्क क्या होगा? कौन सा ज़ेन सिद्धांत उल्लंघन करेगा? –
@CiprianTomoiaga: https://en.wikipedia.org/wiki/Command%E2%80%93query_separation देखें; 'list.append' एक कमांड है, एक क्वेरी नहीं। –
@CiprianTomoiaga: यह भी देखें [पायथन बीडीएफएल से यह ईमेल] (https://mail.python.org/pipermail/python-dev/2003- ऑक्टेट/038855.html)। –