在Python中,当你调用一个类的方法时,需要将类的实例作为第一个参数传递给方法。 括号
  X5zJxoD00Cah 2023年11月02日 37 0



class Class_test:
    def __init__(self):
        pass
    
    # 若无则报错AttributeError: 'Class_test' object has no attribute 'fun_zip'
    def fun_zip(
        self,
        df_arg=pd.DataFrame(),
        bool_arg=False
    ):
        # 每列元素打包
        zipped = zip(*[df_arg.iloc[i] for i in range(df_arg.shape[0])])
        # 是否包含标题
        if bool_arg:
            list_zip = [(col_name, *row) for col_name, row in zip(df_arg.columns, zipped)]
        else:
            list_zip = [tuple(row) for row in zipped]
        return list_zip
    
    def fun_sum(
        self,
        df_arg=pd.DataFrame(columns=['col0', 'col1', 'col2_重量']),
        int_arg=0,
        str_keyword='重量',
        str_suffix='合计'
    ):
        # 生成1行表格
        # 增加合计列,填入合计重量
        df_zip_arg = pd.DataFrame(
            data={
                key: str(value) for key, value in zip(df_arg.columns, self.fun_zip(df_arg))
            },
            index=[int_arg]
        )
obj_test = Class_test()  # 若无括号则报错TypeError: Class_test.fun_sum() missing 1 required positional argument: 'self'
obj_test.fun_sum()
'''
报错信息提示缺少一个必需的位置参数'self',这是因为在调用obj_test.fun_sum()时,没有传入self参数。
在Python中,当你调用一个类的方法时,需要将类的实例作为第一个参数传递给方法。
在这种情况下,你需要创建Class_test的一个实例,并将其作为参数传递给fun_sum()方法。
'''


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  X5zJxoD00Cah   2023年12月11日   26   0   0 知乎Python迭代器
  X5zJxoD00Cah   2023年12月12日   34   0   0 Python.net
X5zJxoD00Cah