تقنية

getuser في بايثون: من أين يأتي الاسم عند ضبط LOGNAME؟

قيمة LOGNAME المؤلفة OWN تصبح ناتج getuser
اسم من البيئة. [1] [2]

نضع اسمًا مؤلفًا في بيئة العملية. [1] [2]

الخلاصة السريعة

يأتي OWN هنا من LOGNAME. [1] [2]

  • تفحص الدالة أول قيمة غير فارغة بالترتيب. [1] [2]
  • الترتيب LOGNAME، ثم USER، ثم LNAME، ثم USERNAME. [1] [2]
  • نطبع OWN، دون طلب كلمة مرور. [1] [2]
  • يعيد finally حالة LOGNAME السابقة. [1] [2]
  • اختبرنا 3.12.14؛ الاسم وحده لا يثبت مصادقة. [1] [2]

المثال

import getpass,os
old=os.environ.get('LOGNAME')
os.environ['LOGNAME']='OWN'
try:print(getpass.getuser())
finally:
 if old is None:
  os.environ.pop('LOGNAME')
 else:os.environ['LOGNAME']=old

[1] [2]

الناتج OWN قيمة اخترناها، لا اسم حساب كشفناه. [1] [2]

أولوية القراءة

الأولوية تمنح LOGNAME غير الفارغ السبق على بقية الأسماء. قراءة هذه القيمة ليست اختبار كلمة مرور. [1] [2]

ترتيب القراءة LOGNAME ثم USER ثم LNAME ثم USERNAME
أول قيمة غير فارغة. [1] [2]

حدود التجربة

نفحص فرع البيئة بخيط واحد. لا نختبر رجوع الدالة إلى قاعدة المستخدمين عند غياب القيم الأربع. [1] [2]

المراجع

  1. Python: getpass
  2. CPython 3.12.14: getpass.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.