ฉันกำลังเขียนโค้ดที่ใช้ชื่อไฟล์เปิดไฟล์และแยกวิเคราะห์ข้อมูลบางอย่าง ฉันต้องการทำสิ่งนี้ในชั้นเรียน รหัสต่อไปนี้ใช้งานได้:
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__
คลาสนั้นหรือไม่? หรือฉันคิดเรื่องนี้ผิดทาง?