क्या पाइथन मानक लाइब्रेरी में एक "निजी" विशेषता नाम के साथ पाइथन के नाम मैंगलिंग योजना को पुन: उत्पन्न करने के लिए कोई फ़ंक्शन है? ऐसा लगता है जैसे होगा, लेकिन मुझे यह मेरे जीवन के लिए नहीं मिल रहा है।पायथन नाम मैंगलिंग फ़ंक्शन
मैंने यह लिखा, लेकिन यदि कोई बेहतर तरीका है तो मैं सभी कान हूं।
def mangle_name (cls, attrname) :
prefix = '_' + cls.__name__.lstrip('_')
if not attrname.startswith('__') :
attrname = '__' + attrname
if not attrname.endswith('__') :
return prefix + attrname
else :
return attrname
class Foo :
__some_such = 3
name = mangle_name(Foo, '__some_such')
print name
print hasattr(Foo(), name)
मैं बहुत यकीन है कि वहाँ में ऐसी कोई समारोह है कर रहा हूँ मानक पुस्तकालय आपको ये किस लिए चाहिए? –
मैं कल्पना कर सकता हूं कि यह लगभग हमेशा कुछ बुरा करने के लिए उपयोग किया जा रहा है। –
असल में, मुझे गतिशील रूप से मनमाने ढंग से कक्षा के निजी विशेषताओं तक पहुंचने की आवश्यकता है। कार्य ऊपर काम करता है; हालांकि, इसमें समस्याएं हो सकती हैं कि मुझे अनजान है (कुछ अप्रत्याशित मुद्दा)। तो किसी और का उपयोग करना सबसे अच्छा विकल्प लगता है। – rectangletangle