سؤال

لدي مشكلة بيثون محبطة للغاية. في هذا الرمز

fixedKeyStringInAVar = "SomeKey"

def myFunc(a, b):
    global sleepTime
    global fixedKeyStringInAVar
    varMe=int("15")
    sleepTime[fixedKeyStringInAVar] = varMe*60*1000
    #more code

الآن هذا يعمل. ولكن في بعض الأحيان عندما أقوم بتشغيل هذه الوظيفة أحصل عليها

TypeError: 'int' object does not support item assignment

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

ماذا يمكن أن يكون هذا الخطأ؟

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

المحلول

  1. لا تستخدم global الكلمة الرئيسية في وظيفة ما لم تكن ترغب في تغيير ملزمة الاسم العالمي.

  2. بحث عن 'sleepTime =في التعليمات البرمجية الخاصة بك. أنت ملزمة كائن int إلى sleepTime الاسم في مرحلة ما في البرنامج الخاص بك.

نصائح أخرى

استيقظ الخاص بك هو متغير عالمي. يمكن تغييرها لتكون int في مرحلة ما في البرنامج الخاص بك.

مهمة البند هي "FOO [BAR] = BAZ" في وظيفتك.

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