में पायथन सुपर फ़ंक्शन का उपयोग यहां एक django ट्यूटोरियल में कुछ कोड है जो मैं जा रहा हूं। मैंने कभी भी पाइथन में सुपर फ़ंक्शन में कभी नहीं देखा है और जिस तरह से इसका उपयोग किया गया है, वह ऑनलाइन उदाहरणों से अलग है। यानी, आमतौर पर जब आप सुपर का उपयोग करते हैं, तो क्या आपके पास एकाधिक कक्षाएं नहीं हैं? यह आखिरी पंक्ति में है: super(Snippet, self).save(force_insert, force_update)
क्या आप समझ सकते हैं कि वहां क्या हो रहा है और इसे लिखने का एक वैकल्पिक तरीका क्या होगा। ऐसा लगता है कि सहेजने की विधि खुद को यहां बुला रही है?django मॉडल
class Snippet(models.Model):
title = models.CharField(max_length=255)
language = models.ForeignKey(Language)
author = models.ForeignKey(User)
description = models.TextField()
description_html = models.TextField(editable=False)
code = models.TextField()
highlighted_code = models.TextField(editable=False)
tags = TagField()
pub_date = models.DateTimeField(editable=False)
updated_date = models.DateTimeField(editable=False)
class Meta:
ordering = ['-pub_date']
def __unicode__(self):
return self.title
def save(self, force_insert=False, force_update=False):
if not self.id:
self.pub_date = datetime.datetime.now()
self.updated_date = datetime.datetime.now()
self.description_html = markdown(self.description)
self.highlighted_code = self.highlight()
super(Snippet, self).save(force_insert, force_update)
यह केवल तभी नहीं है जब स्निपेट के पूर्वजों को बदल दिया गया हो; यदि स्निपेट के बाल वर्ग में एकाधिक विरासत का एक निश्चित रूप है, तो परिणाम सही 'सुपर (स्निपेट, स्वयं)' से अलग हो सकता है। –