2011-01-04 11 views
6

क्या पाइथन built-in कहीं भी पैकेज में संदर्भ के लिए उपलब्ध विधियां हैं?क्या पाइथन अंतर्निहित विधियां वैकल्पिक नामस्थान में कहीं भी उपलब्ध हैं?

मुझे समझाएं।

class MyModel(models.Model): 
    first_name = models.CharField(max_length=100, null=True, blank=True) 
    last_name = models.CharField(max_length=100, null=True, blank=True) 
    property = models.ForeignKey("Property") 

मैं के बाद से की जरूरत है इसे करने के लिए एक संपत्ति जोड़ने के लिए: मेरे जल्दी (ier) अजगर के दिनों में मैं एक Django मॉडल इस के समान बना दिया। रनटाइम पर तो अब

class MyModel(models.Model): 
    first_name = models.CharField(max_length=100, null=True, blank=True) 
    last_name = models.CharField(max_length=100, null=True, blank=True) 
    property = models.ForeignKey("Property") 

    @property 
    def name(self): 
     return "{} {}".format(first_name, last_name) 

मैं त्रुटि मिलती है:: यह इस मॉडल के साथ मुझे छोड़ देता है TypeError: 'ForeignKey' object is not callable। ऐसा इसलिए हो रहा है क्योंकि संपत्ति के लिए विदेशीकी ने अंतर्निहित पहचानकर्ता संपत्ति को बदल दिया है। मैं क्या करना चाहता हूं, @property के बजाय @sys.property (या कुछ समान) का उपयोग करें।

नोट: मैं पहले से ही संपत्ति क्षेत्र की घोषणा से ऊपर नाम संपत्ति हिलाने की वैकल्पिक हल के बारे में पता है। मैं इस विशेष मामले के बारे में इतना चिंतित नहीं हूं क्योंकि मैं पाइथन बिल्ट-इन्स को संदर्भित करने के लिए वैकल्पिक स्थानों का मुख्य प्रश्न हूं।

+0

शायद मुझे समझ नहीं आता, लेकिन तुम सिर्फ '_property' या क्या, की तरह अपने' MyModel' वर्ग ' 'बाकी property' कुछ, नाम नहीं बदल सकते क्या तुम? – martineau

+0

यह सवाल नहीं था। –

+0

नहीं, लेकिन यह मेरा अप्रासंगिक नहीं बनाता है। – martineau

उत्तर

14

__builtin__ का उपयोग करें।

def open(): 
    pass 

import __builtin__ 

print open 
print __builtin__.open 

यह आपको देता है:

<function open at 0x011E8670> 
<built-in function open> 
+2

यदि उन सभी अंडरस्कोर टाइप करना आपको मिल जाता है, तो आप '__builtin__ को बिल्टिन' या जैसा आयात भी कर सकते हैं। – kindall

+0

क्या जीवन बचतकर्ता :-) – Yeo

संबंधित मुद्दे