මොඩියුලය එදිරිව පැකේජය?


149

මම කරන සෑම අවස්ථාවකම මම from 'x' import 'y'කල්පනා කළේ කුමන මොඩියුලය 'මොඩියුලය' ලෙස සලකන්නේද සහ 'පැකේජය' කුමක්ද, එය අනෙක් පැත්තට නොවන්නේ ඇයි?


1
එය අනෙක් පැත්ත නොවන්නේ මන්ද යන්න පිළිබඳව, stackoverflow.com/questions/3600352/…

1
මෙම ප්‍රශ්නයට මම ස්තූතිවන්ත වෙමි, මන්ද පිළිතුර සංක්ෂිප්ත වන අතර අවශ්‍ය දැනුම ලබා දෙයි. ලියකියවිලි සියල්ලම කදිමයි, නමුත් එය වාචික වන අතර OP ඉල්ලා සිටි දෙයට වඩා වැඩි තොරතුරු අඩංගු වන අතර නිසැකවම මට අවශ්‍ය ප්‍රමාණයට වඩා වැඩිය. මට අවශ්‍ය වූයේ එම නිශ්චිත ප්‍රශ්නයට පිළිතුරක් පමණි, පහත පිළිතුර හරියටම මට අවශ්‍ය දේ වේ. අපෙන් බොහෝ දෙනෙකුට එවැනි විධිමත් හෝ ගැඹුරු පිළිතුරු අවශ්‍ය නොවේ.
ටීකින්

දැන ගැනීමට අදාළ සංකල්පයක් - පන්ති එදිරිව මොඩියුලයන් පයිතන්
ආර්බීටී

Answers:


201

පයිතන් මොඩියුලයක් යනු හුදෙක් පයිතන් ප්‍රභව ගොනුවක් වන අතර එමඟින් පන්ති, කාර්යයන් සහ ගෝලීය විචල්‍යයන් නිරාවරණය කළ හැකිය.

වෙනත් පයිතන් ප්‍රභව ගොනුවකින් ආනයනය කරන විට, ගොනුවේ නම නාම අවකාශයක් ලෙස සලකනු ලැබේ.

පයිතන් පැකේජයක් යනු හුදෙක් පයිතන් මොඩියුලයේ (නාම) නාමාවලියකි.

උදාහරණයක් ලෙස, පහත දැක්වෙන නාමාවලි ගස සිතන්න /usr/lib/python/site-packages:

mypackage/__init__.py <-- this is what tells Python to treat this directory as a package
mypackage/mymodule.py

එබැවින් ඔබ එසේ කරනු ඇත:

import mypackage.mymodule

හෝ

from mypackage.mymodule import myclass

ආහා, ඉතින් ඔබ ගොනුවේ නම නාම අවකාශයක් ලෙස සලකන බව පැවසූ විට, ඔබ මේ වගේ දෙයක් කරයිද? පළමු නඩුව සඳහා "mymodule.var1" ද, දෙවන අවස්ථාව සඳහා "myclass.var1" ද?
අඳුරු තාවකාලික

1
හරියටම නොවේ. පැකේජය තවමත් නාම අවකාශයේ කොටසක් ලෙස ගණන් ගනී. ඔබ කියූ දේ කිරීමට ඔබට අවශ්‍ය නම් ඔබ කළ යුත්තේ mypackage import mymodule වෙතින් ය.
යම් මාකෝවික්

නාම අවකාශ පැකේජ ගැන යමක් එකතු කිරීම ප්‍රයෝජනවත් විය හැකිය, ඒ සඳහා කේත සියල්ලම එකම ඩිරෙක්ටරි ගසක නොපෙන්විය යුතුය.
holdenweb

@holdenweb කිසි විටෙකත් එහි ඇති විවිධ යාන්ත්‍රණයන් කෙලින්ම භාවිතා කළේ නැත, එබැවින් විශේෂ .යෙකු නොවේ. ඔබ ඒ පිළිබඳව සවිස්තරාත්මක පැහැදිලි කිරීමක් නව පිළිතුරකින් ලබා දෙන්නේ නම්, මම එය මගේ සිට යොමු කරමි.
යම් මාකෝවික්

නැවත සලකා බැලීමේදී එය තරමක් වටිනවා විය හැකිය
holdenweb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.