使用python 2.7.6,我一直在嘗試編寫一個類,可以從給定的zip文件中的幾個xml文件中提取xml數據片段。我希望能夠按照任何順序使用任何一種方法,因此我希望解壓縮舞臺能夠在課堂上幕後。我可以在def __init__中添加方法嗎?
這是我第一次真正嘗試真正使用一個類,因爲我對Python非常陌生,所以我正在學習。
我定義了將數據解壓縮到內存的方法,並在其他方法中使用這些方法 - 然後意識到使用多種方法時效率會非常低下。由於解壓縮步驟對於類中的任何方法都是必需的,有沒有辦法將它構建到init定義中,因此只有在首次創建類時纔會執行一次?
的例子是我目前有:
class XMLzip(object):
def __init__(self, xzipfile):
self.xzipfile = xzipfile
def extract_xml1(self):
#extract the xmlfile to a variable
def extract_xml2(self):
#extract xmlfile2 to a variable
def do_stuff(self):
self.extract_xml1()
....
def do_domethingelse(self):
self.extract_xml1()
有沒有辦法做這樣的事情我已經如下圖所示?如果是這樣,那叫什麼 - 我的搜索不是很有效。
class XMLzip(object):
def __init__(self, xzipfile):
self.xzipfile = xzipfile
def extract_xml1()
# extract it here
def extract_xml2()
# extract it here
# Now carry on with normal methods
def do_stuff(self):
...
是的,這是可能的嗎?什麼是問題?爲什麼不在'__init__'中使用提取方法而不是在那裏定義它們? – timgeb
這是怎麼做的?我從來沒有在一個例子中看到它。它有名字嗎?它可以幫助我搜索一個。 – emmalg
你的意思是像我現在那樣定義提取方法,但是在init部分調用它們?這是如何工作的? – emmalg