0
点赞
收藏
分享

微信扫一扫

在Python中,当你调用一个类的方法时,需要将类的实例作为第一个参数传递给方法。 括号



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()方法。
'''


举报

相关推荐

android hook一个类的方法

0 条评论