MST

星途 面试题库

面试题:Python中*args参数在类方法中的使用及场景

假设有一个Python类,类中有一个方法,该方法接受*args参数。要求这个方法能够根据传入的不同类型参数(字符串、数字等)进行不同的处理。如果传入的是字符串,将所有字符串拼接起来;如果传入的是数字,计算它们的总和。请实现这个类及方法,并说明这种使用场景在实际项目中的意义。
49.3万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
class ParameterProcessor:
    def process_args(self, *args):
        string_result = ""
        num_result = 0
        for arg in args:
            if isinstance(arg, str):
                string_result += arg
            elif isinstance(arg, (int, float)):
                num_result += arg
        if string_result:
            return string_result
        elif num_result:
            return num_result
        return None


在实际项目中,这种场景有以下意义:

  • 灵活性和通用性:在一些工具类方法或者数据处理模块中,可能会接收多种类型的数据输入。通过这样的设计,方法可以适应不同类型参数,提高代码复用性。例如在日志记录模块,既可以接受字符串信息进行拼接记录,也可能接受数字类型的统计数据进行汇总记录。
  • 简化接口设计:对于调用者来说,不需要为不同类型参数调用不同方法,只需要使用同一个接口,降低了调用方的使用成本和代码复杂度。