You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python类报AttributeError:'K1'对象无'variant'属性问题求解

问题原因

你代码里的variant是__init__构造方法的入参局部变量,不属于实例属性,你没有提前给实例绑定variant属性的前提下,直接调用self.variant必然会触发属性不存在的错误。

修复方案

有两种可选修改方式:

  • 直接用入参赋值,不需要通过self访问:
    把构造方法里的self.R_LENGTH = self.variant修改为self.R_LENGTH = variant即可,修改后的对应代码段如下:
def __init__(self,variant):
    self.__state_bytes_length = self.S_LENGTH
    self.__delimited_suffix = self.SUFFIX
    # 直接用入参variant赋值,不需要加self前缀
    self.R_LENGTH = variant
    CAP_LENGTH = self.S_LENGTH - self.R_LENGTH
    self.H_LENGTH = CAP_LENGTH/2
    self.__rate_bytes_length = self.R_LENGTH
    self.__hash_bytes_length = self.H_LENGTH 

    self.__state_in_bytes = bytearray([0 for i in range(self.__state_bytes_length)])
    self.__capacity_bytes_length = self.__state_bytes_length - self.__rate_bytes_length
    self.__hash_bytes = bytearray()
  • 如果你后续需要在其他实例方法中用到传入的variant值,可以先把入参绑定为实例属性,再赋值R_LENGTH:
def __init__(self,variant):
    # 先把入参绑定到实例属性
    self.variant = variant
    self.__state_bytes_length = self.S_LENGTH
    self.__delimited_suffix = self.SUFFIX
    self.R_LENGTH = self.variant
    # 剩余代码保持不变即可

内容的提问来源于stack exchange,提问作者Ankush Soni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:36:01