Dosya adı alan, dosyayı açan ve bazı verileri ayrıştıran bir kod yazıyorum. Bunu bir sınıfta yapmak istiyorum. Aşağıdaki kod çalışır:
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()
Ama tüm ayrıştırma makinelerini __init__
sınıfımın işlevinin kapsamına koymamı gerektiriyor . Bu basitleştirilmiş kod için şimdi iyi görünüyor, ancak işlevin parse_file
de epeyce girinti seviyesi var. parse_file()
İşlevi aşağıdaki gibi bir sınıf işlevi olarak tanımlamayı tercih ederim :
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
Elbette bu kod çalışmıyor çünkü işlev işlevin parse_file()
kapsamında değil __init__
. Bu sınıfın içinden bir sınıf işlevini çağırmanın bir yolu var mı __init__
? Yoksa bunu yanlış bir şekilde mi düşünüyorum?