अन्य अजगर मॉड्यूल पढ़ने में, मैंने देखा है कि कई लोग अक्सर अपने स्रोत फ़ाइलों में __version__
और __author__
वैश्विक चर (इसके भी PEP3001 में उल्लेख किया है) शामिल हैं। मैं इन चर के उचित सेट के साथ अपना कोड दस्तावेज करना चाहता हूं। वैश्विक चर की एक सूची क्या है जिसे आम तौर पर शामिल किया जा सकता है?एक पायथन मॉड्यूल के लिए, घोषित करने के लिए मानक वैश्विक चर क्या हैं?
उत्तर
वहाँ उन वैश्विक चर के लिए एक विशिष्ट मानक नहीं है - के रूप में पीईपी आप लिंक में बताया गया है, वे एक मानक प्राप्त करने के लिए, लेकिन किसी भी विलक्षण रूप में सार्वभौमिक रूप से स्वीकार नहीं किया हो गए हैं प्रयास किया गया था।
वास्तविक मानक पीईपीआई मेटाडाटा है, जो distutils
(या एक संगत इंटरफ़ेस) का उपयोग करके आपके मॉड्यूल के लिए setup.py
फ़ाइल में निर्दिष्ट है। अपनी परियोजना के बारे में मेटाडेटा प्रदान करने के लिए बजाय
from distutils.core import setup
setup(
name='TowelStuff',
version='0.1.0',
author='J. Random Hacker',
author_email='[email protected]',
packages=['towelstuff', 'towelstuff.test'],
scripts=['bin/stowe-towels.py','bin/wash-towels.py'],
url='http://pypi.python.org/pypi/TowelStuff/',
license='LICENSE.txt',
description='Useful towel-related stuff.',
long_description=open('README.txt').read(),
install_requires=[
"Django >= 1.1.1",
"caldav == 0.1.4",
],
)
ध्यान दें कि (IIUC) distutils रास्ते पर है। उदाहरण के लिए, 'setup.cfg' में स्थिर मेटाडेटा द्वारा 'सेटअप (...)' को प्रतिस्थापित किया जाना है। मुझे बिल्कुल पता नहीं है कि वास्तविकता बनने के लिए यह कितना करीब है। – delnan
उपयोग distutils
(या सुपरसेट setuptools
): यहाँ पैकेजिंग ट्यूटोरियल से उदाहरण दिया गया है।
विशेष रूप से setuptools
का उपयोग करते समय, मेटाडेटा तब pkg_resources
module के माध्यम से खोजने योग्य और पुन: प्रयोज्य है।
वैश्विक चर के लिए कोई मानक नहीं है जैसे कि __version__
, पायथन स्टडलिब के लिए भी नहीं, यही कारण है कि पाइथन 3 के लिए stdlib में यह मेटाडेटा प्रदान करने का प्रयास कुछ भी नहीं है।
मैं कैसे अपनी परियोजना को ठीक से पैकेज पर एक प्राइमर के रूप में Python Packaging User Guide सिफारिश कर सकते हैं।
* पायथन 3 के लिए stdlib में इस मेटाडेटा को प्रदान करने का प्रयास कुछ भी नहीं है * - क्या आप कृपया कुछ संदर्भ प्रदान कर सकते हैं? इसके अलावा, आप को समझाने के लिए क्यों कुछ stdlib संकुल मेटाडाटा सक्षम हो सकता है और दूसरों को नहीं है - https://github.com/pypa/pip/issues/1570 देख –
https://mail.python.org/pipermail/python देखें -dev/2012-जून/120430.html; 'distutils2' ने कभी भी पर्याप्त कर्षण प्राप्त नहीं किया और इसके साथ नए मेटाडेटा स्वरूप और प्रयास भी प्राप्त किए। * कुछ * stdlib पुस्तकालयों में मेटाडेटा के लिए: मुझे लगता है कि वे पहली स्वतंत्र परियोजनाएं थीं जिन्हें बाद में stdlib में विलय कर दिया गया है। –
- 1. वैश्विक चर के लिए नामकरण/स्वरूपण मानक
- 2. पर्ल में वैश्विक चर घोषित करने के लिए कैसे करें?
- 3. पायथन: स्थानीय मॉड्यूल वैश्विक मॉड्यूल
- 4. वैश्विक चर करने के लिए उचित "सी ++ तरीका" क्या है?
- 5. पायथन मॉड्यूल शेलक्वॉट/अनहेल्कोवोट करने के लिए?
- 6. पायथन में मॉड्यूल-व्यापी चर बनाने के लिए कैसे?
- 7. एक .js फ़ाइल में वैश्विक चर घोषित करने के लिए कैसे करें
- 8. क्या बाहरी चर एक प्रकार के वैश्विक चर हैं?
- 9. एकाधिक परिवर्तनीय वैश्विक अनुकूलन के लिए पायथन मॉड्यूल
- 10. डीएलएल में घोषित वैश्विक चर के साथ क्या होता है?
- 11. एक पूर्ण मॉड्यूल के लिए पायथन सजावट को परिभाषित करना
- 12. सी ++ - .h फ़ाइल में स्थैतिक वैश्विक चर घोषित करने के लिए ठीक है?
- 13. पायथन कार्य वैश्विक चर?
- 14. एक सामान्य क्वेरी के लिए MySQL में एक चर घोषित करने के लिए कैसे?
- 15. सभी गतिविधियों में उपयोग करने के लिए वैश्विक चर घोषित करना
- 16. क्या आवृत्ति चर वैश्विक वैरिएबल चर हैं?
- 17. मुझे स्थैतिक चर घोषित करने के लिए कहां है?
- 18. पायथन: चर माता पिता मॉड्यूल
- 19. पायथन गेम प्रोग्रामिंग: क्या मेरा आईओ ऑब्जेक्ट वैश्विक चर होने के लिए एक वैध उम्मीदवार है?
- 20. मॉड्यूल के स्थिरांक और चर शामिल करने के लिए कैसे?
- 21. MATLAB के वैश्विक चर के लिए सर्वोत्तम विकल्प
- 22. बैश: फ़ंक्शन के अंदर वैश्विक चर घोषित करना
- 23. एक्सएएमएल डेटा एक वैश्विक चर के लिए बाध्यकारी?
- 24. मैं एलएलवीएम में वैश्विक चर कैसे घोषित कर सकता हूं?
- 25. क्या कोई वैश्विक चर के साथ प्रोग्रामिंग भाषाएं हैं?
- 26. क्या मैं वैश्विक चर परिभाषित करने के लिए __init__.py का उपयोग कर सकता हूं?
- 27. कैसे मॉड्यूल रास्ते में मानक पुस्तकालय आयात करने के लिए बजाय समान नाम वाले मॉड्यूल के
- 28. वैश्विक चर के लिए डिफ़ॉल्ट भंडारण वर्ग क्या है?
- 29. जावास्क्रिप्ट में वैश्विक चर घोषित कैसे करें?
- 30. टाइपपीफ ब्लॉक करने के लिए एक आगे संदर्भ घोषित करें?
व्यक्तिगत रूप से, मैं बस कारण के लिए है कि सामान में से किसी के साथ अपने मॉड्यूल को अव्यवस्थित से बचने कि '' __....__ नाम संबंधित * अजगर * और मुझे नहीं लगता कि जब तक यह है उपयोगकर्ता कि सामान में से किसी के ऊपर लिख चाहिए एक कारण डॉक्स में वर्णित के लिए (जैसे 'कक्षाएं आरंभ करने के लिए __init__') ... कुछ बिंदु पर यह मानकीकृत हो जाता है (एक पीईपी या डॉक्स में), मैं अपनी राय हालांकि – mgilson
आप PEP3001 का कहना है, लेकिन नोटिस बदल सकता है कि पीईपी ("पायथन एन्हांसमेंट _Proposal_") "निकाला गया" था। इसलिए, पीईपी की भाषा को "मानक" के रूप में नहीं माना जाना चाहिए। हो सकता है कि आपने स्टेटस फ्लैग को अभी याद किया हो, लेकिन बस मामले में, मैं [PEP 1] (http://www.python.org/dev/peps/pep-0001/) के लिंक को शामिल करूंगा, जो बताता है कि कैसे पीईपी प्रक्रिया काम करता है। –
@mgilson - यह एक उचित टिप्पणी है। मुझे "स्वयं-दस्तावेज" कोड रखने का विचार पसंद है, भले ही यह केवल मुश्किल-मानकीकृत वैश्विक चर है। लेकिन, साथ ही, मैं देखता हूं कि आप कहां से आ रहे हैं क्योंकि __...__ 'पाइथन से संबंधित है। –