لماذا لم يتم تسمية فئة subprocess.Popen بالعملية الفرعية؟[مغلق]

StackOverflow https://stackoverflow.com/questions/38197

  •  09-06-2019
  •  | 
  •  

سؤال

الصف الابتدائي في subprocess الوحدة هي الاسم Popen, ، ويمثل عملية فرعية. Popen يبدو أن شخصًا ما كان يحاول إجبار الاسم على اتباع بعض تنسيقات تسمية الوظائف، بدلاً من اختيار اسم يمثل فعليًا ماهية الكائن.هل يعرف أحد سبب اختياره بدلاً من شيء بسيط مثل، على سبيل المثال، Subprocess?

هل كانت مفيدة؟

المحلول

الآن، أنا لا أقول أن هذا هو أعظم اسم في العالم، ولكن هنا كانت الفكرة كما أفهمها.

في الأصل، كانت عائلة بوبين موجودة في وحدة نظام التشغيل وكانت تطبيقًا لـ posix popen الموقر.كان من الممكن أن يكون الانتقال إلى وحدة العمليات الفرعية وقتًا مناسبًا لإعادة تسميتها، ولكن أعتقد أن الاحتفاظ بـ Popen يجعل من السهل العثور عليها في المستندات لأولئك الذين لديهم تاريخ طويل مع بايثون أو حتى وظائف posix الموقرة.

منذ أول تجسيد لها، Popen كان المقصود دائمًا فتح العملية والسماح لك بالقراءة والكتابة من الاستوديو الخاص بها مثل الملف.وبالتالي فإن ذاكري ل Popen هو أنه قصير ل ProcessOpen في محاولة لتبدو وكأنها مفتوحة نوعًا ما.

نصائح أخرى

subprocess.Popen يستبدل مجموعة os.popenX وظائف POSIX (التي لها تاريخ طويل).أظن أن الاسم Popen يزيد من احتمالية قيام الأشخاص المعتادين على الوظائف القديمة بالعثور على الوظائف الجديدة واستخدامها.

ال PEP للعملية الفرعية (PEP 324) لديه القليل من المناقشة حول اسم الوحدة ولكن ليس الفصل Popen.ال قائمة الأشخاص السياسيين السياسيين (مقترحات تحسين بايثون) بشكل عام مكان ممتاز للبدء إذا كنت تبحث عن الأساس المنطقي لميزات بايثون.

أفترض أنه تم اختيار الاسم بسبب الوظيفة subprocess يتم استبداله سابقًا في os الوحدة النمطية مثل os.popen وظيفة.ومن الممكن أن تكون هناك طرق لأتمتة عملية الترحيل بين الاثنين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top