Methods with the same name in one class in Python

前端 未结 9 1625
执笔经年
执笔经年 2021-01-30 02:18

How can I declare a few methods with the same name, but with different numbers of parameters or different types in one class?

What must I change in the following class?

9条回答
  •  有刺的猬
    2021-01-30 02:59

    You can have a function that takes in a variable number of arguments.

    def my_method(*args, **kwds):
        # Do something
    
    # When you call the method
    my_method(a1, a2, k1=a3, k2=a4)
    
    # You get:
    args = (a1, a2)
    kwds = {'k1':a3, 'k2':a4}
    

    So you can modify your function as follows:

    def my_method(*args):
        if len(args) == 1 and isinstance(args[0], str):
            # Case 1
        elif len(args) == 2 and isinstance(args[1], int):
            # Case 2
        elif len(args) == 2 and isinstance(args[1], str):
            # Case 3
    

提交回复
热议问题