如何从另一个文件调用Python类函数
我在我的 parser.py 文件里有一个类
class HostInfo(object):
def __init__(self, host_id):
self.osclass = []
self.osmatch = []
self.osfingerprint = []
self.portused = []
self.ports = []
self.extraports = []
self.tcpsequence = {}
self.hostnames = []
self.tcptssequence = {}
self.ipidsequence = {}
self.trace = {'port': '', 'proto': '', 'hop': []}
self.status = {}
self.address = []
self.hostscript = []
# Umit extension
self.id = host_id
self.comment = ''
# XXX this structure it not being used yet.
self.nmap_host = {
'status': {'state': '', 'reason': ''},
'smurf': {'responses': ''},
'times': {'to': '', 'srtt': '', 'rttvar': ''},
'hostscript': [],
'distance': {'value': ''},
'trace': {'port': '', 'proto': '', 'hop': []},
'address': [],
'hostnames': [],
'ports': [],
'uptime': {'seconds': '', 'lastboot': ''},
'tcpsequence': {'index': '', 'values': '', 'class': ''},
'tcptssequence': {'values': '', 'class': ''},
'ipidsequence': {'values': '', 'class': ''},
'os': {}
}
之后我定义了一个函数,这个函数试图从一个 XML 文件中找到一个主机 ID
def get_id(self):
try:
return self._id
except AttributeError:
raise Exception("Id is not set yet.")
def set_id(self, host_id):
try:
self._id = int(host_id)
except (TypeError, ValueError):
raise Exception("Invalid id! It must represent an integer, "
"received %r" % host_id)
现在我想在另一个文件中调用这个 get_id
函数。我尝试了很多次,但总是出现一个错误,提示说模块无法导入
1 个回答
10
from parser import HostInfo
obj = HostInfo(<whatever host_id you need here>)
obj.get_id
这就是你是怎么做的,实际上你是怎么做到的呢?