سؤال

لقد اضطررت إلى إجراء بعض الاستبطان في لغة بايثون ولم يكن الأمر جميلًا:

name = sys._getframe(1).f_code
name = "%s:%d %s()" %(os.path.split(name.co_filename)[1],name.co_firstlineno,name.co_name)

للحصول على شيء مثل

foo.py:22 bar() blah blah

في إخراج التصحيح لدينا.

أود من الناحية المثالية تقديم أي شيء إلى stderr مع هذا النوع من المعلومات - هل من الممكن تغيير سلوك الطباعة على مستوى العالم داخل Python؟

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

المحلول

تقوم عبارة الطباعة بإجراء عملية الإدخال والإخراج من خلال "sys.stdout.write" حتى تتمكن من تجاوز sys.stdout إذا كنت تريد التعامل مع دفق الطباعة.

نصائح أخرى

الثعبان فحص الوحدة النمطية تجعل هذا الأمر أسهل وأنظف كثيرًا.

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