भाषा सर्वर द्वारा संचालित स्वत: पूर्णता सर्वव्यापी होने से पहले, इससे कोई फर्क नहीं पड़ता था कि कोड इस तरह से लिखा गया था कि स्वत: पूर्णता आसान हो जाए। सबलाइम जैसे लोकप्रिय पाठ संपादक सार्थक सुझाव प्रदान करने के लिए कोड को पर्याप्त रूप से समझने में सक्षम नहीं थे। प्रोग्रामर ने या तो अपनी निर्भरता के आदेशों को याद कर लिया या उन्होंने दस्तावेज़ीकरण का संदर्भ दिया।
2024 में स्वत: पूर्णता हर जगह है, लेकिन हमारे पैकेजों ने जरूरी नहीं कि इसका काम आसान बना दिया हो। फ़ैक्टरी बॉय के दस्तावेज़ से यह उदाहरण लें:
import factory from datetime import datetime from .models import User class UserFactory(factory.Factory): class Meta: model = User arrival = factory.Faker( 'date_between_dates', date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), )
आगमन विशेषता फ़ेकर की date_between_dates() विधि को कॉल करती है। दुर्भाग्य से, फ़ैक्टरी.फ़ेकर() आपको यह नहीं बताता कि कौन-सी फ़ेकर विधियाँ उपलब्ध हैं, और यह आपको यह नहीं बताएगा कि आपके द्वारा किसी एक को चुनने के बाद फ़ेकर विधि कौन से पैरामीटर स्वीकार करती है। यह कोड भाषा सर्वर द्वारा प्रदान किए जाने वाले लाभों को कम करता है।
आप फैक्ट्री_बॉय के साथ फ़ेकर का उपयोग करते समय फ़ैक्टरी कॉल को फ़ैक्टरी में लपेटकर स्वतः पूर्ण प्राप्त कर सकते हैं।LazyFunction():
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User arrival = factory.LazyFunction(lambda: fake.date_between_dates( date_start=datetime.date(2020, 1, 1), date_end=datetime.date(2020, 5, 31), ))
फ़ंक्शन फ़ैक्टरी को पास कर दिए जाते हैं। जब फ़ैक्टरी एक इंस्टेंस बनाती है तो LazyFunction() मूल्यांकन करता है। हम अपनी फेकर कॉल को लैम्ब्डा में लपेटते हैं ताकि हम उसे तर्क प्रदान कर सकें। और आपका भाषा सर्वर आपको दिखा सकता है कि false.date_between_dates() कौन से पैरामीटर स्वीकार करता है।
जब फ़कर फ़ंक्शन को किसी तर्क की आवश्यकता नहीं होती है तो कम सेट-अप होता है। यहां बताया गया है कि आप फ़ैकर के पहले_नाम() और अंतिम_नाम() तरीकों के साथ फ़ैक्टरी.लेज़ीफ़ंक्शन() का उपयोग कैसे कर सकते हैं:
import factory from datetime import datetime from .models import User fake = Faker() class UserFactory(factory.Factory): class Meta: model = User first_name = factory.LazyFunction(fake.first_name) last_name = factory.LazyFunction(fake.last_name)
परिणामस्वरूप कोड थोड़ा लंबा है, यदि हमने फ़ैक्टरी.फ़ेकर() का उपयोग किया होता, लेकिन भाषा सर्वर से सहायता मेरे लिए इसके लायक है। इसके बिना, मुझे दस्तावेज़ीकरण की लगातार जाँच करने की आवश्यकता हो सकती है।
यदि यह टाइप करने के लिए बहुत अधिक है, तो आप इसे हमेशा कुछ छोटा कर सकते हैं:
from factory import Factory, LazyFunction as LazyFn from datetime import datetime from .models import User fake = Faker() class UserFactory(Factory): class Meta: model = User first_name = LazyFn(fake.first_name) last_name = LazyFn(fake.last_name)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3