كيف أفعل القرود في بيثون؟
-
09-06-2019 - |
سؤال
لقد اضطررت إلى إجراء بعض الاستبطان في لغة بايثون ولم يكن الأمر جميلًا:
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 إذا كنت تريد التعامل مع دفق الطباعة.
نصائح أخرى
الثعبان فحص الوحدة النمطية تجعل هذا الأمر أسهل وأنظف كثيرًا.
لا تنتمي إلى StackOverflow