私はPythonを使用して以来、ほとんどOOPを行うことができず、クラスの作成などに慣れようとしています。
次のクラスを別の関数に分割するにはどうすればよいですか。クラスに 2 つの引数を渡すのではなく、最初に fname を渡し、次に表示するすべての xml 要素に対して display と呼ばれるメソッドを呼び出したいと思います。私がそれをやろうとしたとき、ツリーでグローバル名の問題が発生しました。
import sys
class Parser(object):
def __init__(self, file_name, mylist):
import xml.etree.ElementTree as etree
self.file_name = file_name
tree = etree.parse(self.file_name)
for node in tree.getiterator():
for element in mylist:
if element in node.tag:
print(node.tag)
list2 = ['KeyId','X509SerialNumber','CompositionPlaylistId']
fname = sys.argv[1]
myfileinstance =Parser(fname,list2)