当前位置: 首页 > 工具软件 > Typeset > 使用案例 >

Python编码报错 TypeError: unhashable type set

施弘壮
2023-12-01

问题:

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
 类似资料: