मैं कुछ कोड लिख रहा हूं जो फ़ाइल नाम लेता है, फ़ाइल खोलता है, और कुछ डेटा को पार्स करता है। मैं एक कक्षा में ऐसा करना चाहता हूं। निम्नलिखित कोड काम करता है:
class MyClass():
def __init__(self, filename):
self.filename = filename
self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
def parse_file():
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5
parse_file()
लेकिन इसमें मुझे __init__
अपनी कक्षा के लिए फ़ंक्शन के दायरे में सभी पार्सिंग मशीनरी को शामिल करना है । इस सरलीकृत कोड के लिए यह अब ठीक लग रहा है, लेकिन फ़ंक्शन के parse_file
साथ-साथ इंडक्शन के कुछ स्तर भी हैं। मैं फ़ंक्शन parse_file()
को नीचे दिए गए क्लास फ़ंक्शन के रूप में परिभाषित करना चाहता हूं :
class MyClass():
def __init__(self, filename):
self.filename = filename
self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
parse_file()
def parse_file():
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5
बेशक यह कोड काम नहीं करता है क्योंकि फ़ंक्शन फ़ंक्शन parse_file()
के दायरे में नहीं है __init__
। क्या __init__
उस कक्षा के भीतर से किसी क्लास फ़ंक्शन को कॉल करने का कोई तरीका है ? या मैं इस बारे में गलत तरीके से सोच रहा हूं?