Tôi đang viết một số mã có tên tệp, mở tệp và phân tích một số dữ liệu. Tôi muốn làm điều này trong một lớp học. Các mã sau hoạt động:
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()
Nhưng nó liên quan đến việc tôi đặt tất cả các máy phân tích cú pháp trong phạm vi __init__
hàm cho lớp của tôi. Điều đó có vẻ tốt cho mã đơn giản hóa này, nhưng chức năng parse_file
này cũng có khá nhiều mức độ chú ý. Tôi muốn định nghĩa hàm parse_file()
là hàm lớp như dưới đây:
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
Tất nhiên mã này không hoạt động vì hàm parse_file()
không nằm trong phạm vi của __init__
hàm. Có cách nào để gọi một hàm lớp từ bên trong __init__
lớp đó không? Hay tôi đang nghĩ về điều này sai cách?