كيف يمكنني التوقف عن IDLE من طباعة قوائم العملاقة؟

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

سؤال

وأحيانا كنت سوف تعمل مع، مثلا، قائمة الآلاف من البنود في IDLE، وبالصدفه طباعته إلى قذيفة. وعندما يحدث ذلك، فإنه تعطل أو على الأقل significaly جدا يبطئ IDLE. كما يمكنك أن تتخيل، وهذا غير مريح للغاية. هل هناك طريقة لجعله، بدلا من طباعة الأمر برمته، فقط أعطني تلخيص [1، 2، ...] الإخراج؟ أي مساعدة سيكون محل تقدير كبير.

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

المحلول

وكما ذكر أعلاه، في محاولة لوظيفة الطباعة حسب الطلب مثل:

def my_print(obj):  
    if hasattr(obj, '__len__') and len(obj) > 100:  
        print '... omitted object of %s with length %d ...' % (type(obj), len(obj))  
    else: print obj

نصائح أخرى

استخدم IPython كما قذيفة بدلا من ذلك.

هل يمكن استخدام وظيفة الطباعة حسب الطلب.

في بيثون 3، منذ الطباعة وظيفة، يجب أن تكون قادرة على "تجاوز" عليه. (ليس لدي تثبيته لذلك لا أستطيع ذلك في محاولة للتأكد.) ربما لا ينصح به للتطبيقات حقيقية ولكن إذا كنت مجرد محاولة الامور، فإنه سيكون بخير أنا أفترض.

ووسيذهب شيئا مثل:

def myprint(*args):
    # write the function as described by other people
print = myprint

ولقد كتب العصارة التمديد لIDLE لفعل هذا. من الوصف على Pypi:

<اقتباس فقرة>   

وIDLE يمكن أن يعلق إذا تم طباعة الناتج طويل جدا. لتجنب هذا، والعصارة   ملحقات يمسك أي إخراج أطول من 80 أسطر من النص (شكلي) و   يعرض مربع مستطيل بدلا من ذلك:

وتدرج العصارة، والعديد من الملحقات الأخرى IDLE في IdleX .

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