حاليًا ، يعد تتبع المعرفات بدائية للغاية ويستند فقط إلى المتغيرات السابقة. ستكون الفكرة هي الاحتفاظ ببعض إعادة كتابة المتغيرات الفريدة في معرفات فريدة يمكن عكسها أيضًا.
هذا يجب أن يجعل من غير الضروري استخدام locals () في جميع أنحاء الكود وإصلاح بعض المشاكل مع المعرفات فوق حدود الوظيفة.
كيف تعرف أنك متأثر بهذه المشكلة؟ يمكنك الحصول على شيء على غرار "متغير غير منضم l_SOMETHING" تم العثور عليه.
من #pocoo الآن:
magicbronson: hey mitsuhiko et al., trying to render a Jinja template in a Flask app and getting a very mysterious message: "global name 'l_config' is not defined"
magicbronson: l_config appears nowhere in my code or libraries'
mitsuhiko: magicbronson: that's the scoping bug that i will fix over this summer
mitsuhiko: {% macro foo() %}{{ config }}{% for config in something_else %}{{config}}{% endfor %}{% endmacro %}
mitsuhiko: something like this triggers the bug currently
mitsuhiko: magicbronson: rename the variable inside of the macro to something else
mitsuhiko: {% set cfg = config %}
mitsuhiko: outside the macro
mitsuhiko: or something
عمل اقتراح أرمين على حل المشكلة.
لقد تم ذلك أخيرًا.
التعليق الأكثر فائدة
لقد تم ذلك أخيرًا.