问题:
TypeError: unhashable type set
class FTP(object):
def __init__(self,ip,user,passwd) :
self.ip = ip
self.user=user
self.passwd = passwd
self.child = None
def open(self):
self.child = pexpect.spawnu(f'ftp {self.ip}')
ftp = FTP(f"{data_case['ip']}",'root','admin')
原因:
问题出在调用函数进行传参时,传的是一个字典变量,但是初始化IP变量没有指明类型,而set不传字典
解决:
指明初始化变量为str格式
class FTP(object):
def __init__(self,ip:str,user,passwd) :
self.ip = ip
self.user=user
self.passwd = passwd
self.child = None
def open(self):
self.child = pexpect.spawnu(f'ftp {self.ip}')
拓展:
同种问题还有
“TypeError: unhashable type list”、
“TypeError: unhashable type dict”。
出现这种异常通常是因为在使用set()过程中,set()传递进来的不是可哈希的元素。
可哈希的元素有:int、float、str、tuple
不可哈希的元素有:list、set、dict