2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
अस्मिन् लेखे मुख्यतया पायथन् इत्यस्मिन् वर्गेषु तथा वस्तुषु वर्गविधयः स्थिरविधयः च परिचयः, तथैव वर्गविधिषु स्थिरविधिषु च परिभाषा, लक्षणं, अनुप्रयोगपरिदृश्यं, उपयोगविधिः च परिचयः कृतः, तयोः तुलना च कृता अस्ति
CM3 त्रुटिनिवारणप्रणाल्याः संक्षिप्तविश्लेषणम्
अर्धमासस्य कार्यस्य अनन्तरं एम्बेडेड् टेक्नोलॉजी स्टैक् इत्यस्य सारांशः प्रकाशितः भवति
दस्तावेजं डाउनलोड् कर्तुं भवान् निम्नलिखितलिङ्कं द्रष्टुं शक्नोति:
https://github.com/leezisheng/डॉक्
अस्मिन् दस्तावेजे मुख्यतया वस्तु-उन्मुख-प्रोग्रामिङ्ग-कृते पायथन्-इत्यस्य उपयोगः कथं करणीयः इति परिचयः कृतः अस्ति, तथा च पाठकानां कृते पायथन्-वाक्यविन्यासस्य सूक्ष्मनियन्त्रकस्य विकासस्य च मूलभूतबोधः आवश्यकः अस्ति अन्येषां ब्लॉग्-पुस्तकानां तुलने ये पायथन्-वस्तु-उन्मुख-प्रोग्रामिङ्गस्य व्याख्यां कुर्वन्ति, एतत् दस्तावेजं अधिकं विस्तृतं भवति तथा च एम्बेडेड् होस्ट्-सङ्गणक-अनुप्रयोगेषु केन्द्रितम् अस्ति तथा अनुप्रयोगस्य उदाहरणरूपेण निम्नसङ्गणकं , पाठकानां अवगमनं सुलभं कर्तुं कोडं दृग्गतरूपेण पठितुं Sourcetrail कोडसॉफ्टवेयरस्य उपयोगं कुर्वन्तु ।
प्रासंगिकाः नमूनासङ्केतलिङ्काः निम्नलिखितरूपेण सन्ति ।https://github.com/leezisheng/पायथन-ओओपी-डेमो
SensorClass वर्गं उदाहरणरूपेण गृहीत्वा, वर्गे परिभाषिताः तथाकथिताः InitSensor, StartSensor, StopSensor इत्यादयः विधयः सन्तिवस्तुविधयः, अर्थात् एते विधिः सर्वे वस्तुं प्रति प्रेषिताः सन्देशाः सन्ति, ते च सर्वे वस्तुनि गुणाः आह्वयन्ति ।वस्तुतः वयं क्लास् मध्ये लिखितानि मेथड्स् ऑब्जेक्ट् मेथड् भवितुम् आवश्यकाः न सन्ति येषु ऑब्जेक्ट् एट्रिब्यूट् आह्वयितुं आवश्यकता नास्ति उदाहरणार्थं InitSensor मेथड् मध्ये अस्माभिः निर्धारयितुं आवश्यकता भवेत् COM पोर्ट् अस्ति स्पष्टतया, एषा विधिः भिन्ना अस्ति Sensor objects are a relevant.
अन्यस्य उदाहरणस्य कृते वयं "त्रिकोण" वर्गं परिभाषयामः, त्रिकोणदीर्घतासु गत्वा त्रिकोणं निर्मामः, परिधिस्य क्षेत्रफलस्य च गणनायाः पद्धतयः प्रदामः तथापि पार्श्वदीर्घतायां पारिताः त्रयः त्रिकोणवस्तुनिर्माणं कर्तुं न शक्नुवन्ति, अतः we can first write एकः विधिः सत्यापयितुं यत् त्रयः पार्श्वदीर्घताः त्रिकोणं निर्मातुम् अर्हन्ति वा इति form a triangle), अतः एषः मेथड् Triangle class अस्ति किन्तु triangle object न ।वयं उपयोक्तुं शक्नुमःस्थिरविधिःएतादृशस्य समस्यायाः समाधानार्थं कोडः यथा अस्ति ।
@staticmethod
_# 判断传感器ID号是否正确:这里判断ID号是否在0到99之间_
def IsTrueID(id:int = 0):
if id >= 0 and id <= 99:
return True
else:
return False
स्थिरविधयः वस्तुतः अस्माभिः ज्ञाताः कार्याणि सन्ति तेषां कार्याणां च मध्ये एकमात्रः अन्तरः अस्ति यत् स्थिरविधयः वर्गस्य (class namespace) स्थाने परिभाषिताः भवन्ति, यदा तु कार्याणि तस्मिन् स्थाने परिभाषिताः भवन्ति यत्र प्रोग्रामः स्थितः अस्ति (global namespace) । . स्थिरविधिषु self तथा cls इत्यादयः विशेषाः पैरामीटर् न सन्ति, अतः पायथन् व्याख्याकारः तस्मिन् समाविष्टानां पैरामीटर् कृते किमपि क्लास् अथवा ऑब्जेक्ट् बाइण्डिंग् न करिष्यति । अतः वर्गस्य स्थिरविधौ कोऽपि वर्गविशेषणः, वर्गविधिः च आह्वयितुं न शक्यते । अत्र वयं IsPort static method परिभाषयामः यत् sensor ID number सम्यक् अस्ति वा इति निर्धारयितुं static method @staticmethod इत्यनेन परिवर्तयितुं आवश्यकम् अस्ति । स्थिरविधिं आह्वयितुं भवान् वर्गनाम वा वर्गवस्तु वा उपयोक्तुं शक्नोति, उदाहरणार्थम् :
_ # 设置ID号_
id = 1
_ # 判断ID号是否符合格式_
if SensorClass.IsTrueID(id):
s = SensorClass()
else:
print("Sensor Init False")
स्थिरविधिषु सदृशं पायथन् वर्गे वर्गविधयः अपि परिभाषितुं शक्नोति वर्गविधेः प्रथमपैरामीटर् परम्परागतरूपेण cls इति नामकरणं भवति, यत् वर्तमानवर्गेण सह सम्बद्धसूचनायाः वस्तुं प्रतिनिधियति (वर्गः एव अपि वस्तु अस्ति, केषुचित् च places क्लास् इत्यस्य मेटाडाटा ऑब्जेक्ट् इति उच्यते), अस्य पैरामीटर् इत्यस्य माध्यमेन वयं क्लास् इत्यनेन सह सम्बद्धानि सूचनानि प्राप्तुं शक्नुमः तथा च क्लास् इत्यस्य ऑब्जेक्ट्स् निर्मातुम् अर्हति Python स्वयमेव क्लास् इत्येतत् cls पैरामीटर् इत्यनेन सह बाइण्ड् करिष्यति (ध्यायन्तु यत् एतत् क्लास् ऑब्जेक्ट् इत्यनेन सह बाध्यं न भवति ) . अन्येषु शब्देषु, यदा वयं class मेथड् आह्वयामः तदा cls पैरामीटर् कृते स्पष्टतया पैरामीटर्स् पारयितुं आवश्यकता नास्ति ।
@classmethod संशोधकस्य उपयोगेन वर्गविधयः परिवर्तयितुं आवश्यकाः सन्ति वयं MasterClass मध्ये MasterInfo इति वर्गविधिं परिभाषयामः नमूनासङ्केतः निम्नलिखितरूपेण अस्ति ।
@classmethod
def MasterInfo(cls):
print("Info : "+str(cls))
print(MasterClass.MasterInfo())