जब मैं क्लास इंस्टेंस बनाता हूं तो मैं फ़ंक्शन के माध्यम से चर असाइन करने का प्रयास करता हूं, लेकिन यह काम नहीं करता है।

class Test:
    def __init__(self, l):
        self.l = l
        self.func(self.l) # or I tried self.func(l)
        self.z = None
        self.y = None

    def func(self, l):
        self.z = l  # doesn't work
        self.y = 123 # doesn't work

x = Test('test')
print(x.z) # = None
print(x.y) # = None

क्या कोई इस बात को समझा सकता है, लिंक का स्वागत है!

-2
NashGC 10 अक्टूबर 2018, 21:59

2 जवाब

सबसे बढ़िया उत्तर

आप self.z और self.y को None के रूप में परिभाषित करने के बाद उन्हें func से फिर से परिभाषित कर रहे हैं। __init__ में self.z और self.y से छुटकारा पाएं

class Test:

    def __init__(self, l):
        self.l = l
        self.func(self.l) # or I tried self.func(l)
        # These are redefining the variables, comment out
        # self.z = None
        # self.y = None

    def func(self, l):
        self.z = l  
        self.y = 123 
1
C.Nivs 10 अक्टूबर 2018, 19:01

पायथन टैब/स्पेस इंडेंट निर्भर है, इसे काम करना चाहिए।

class Test:
    def __init__(self, l):
        self.l = l
        self.func(self.l)  # or I tried self.func(l)
        self.z = None
        self.y = None

    def func(self, l):
        self.z = l  # doesn't work
        self.y = 123  # doesn't work


x = Test('test')
print(x.z)  # = None
print(x.y)  # = None
-1
Complexitity 10 अक्टूबर 2018, 19:04