Answered step by step
Verified Expert Solution
Question
1 Approved Answer
In this question, please help the tutors to implement a function to check whether a set of parameters adheres to the rules of advanced argument
In this question, please help the tutors to implement a function to check whether a set of parameters adheres to the rules of advanced argument passing. Input: An arbitrary number of string type arguments. Each string value represents one of the parameters that the tutors would like to use in their function (e.g. "param_name", "param_name=10", "*param_name"). The given parameters will be one of the following: normal argument, default argument, *args, and **kwargs. Given the input, your function has two tasks: 1. Verify and output if the set of parameters are valid so that it can be used in a function header by checking the following: The order of the parameters is valid There are neither multiple *args nor multiple **kwargs 2. Correct the parameters if they are invalid by: Correct the order based on the rules we learn in class Remove all *args except for the first *args in the original list and remove all **kwargs except for the first **kwargs . Output: A tuple with two items: a list of strings that are the corrected parameters, and a boolean that tells if the original parameters were correct or not. Examples If I want to check the following function header is valid or not: def example(slope, *constants, intercept) The function call will be the following where each argument is a string of example's parameters: parameter_debugger('slope', '*constants', 'intercept') The output will be the following tuple whose first item is the list of parameters in the correct order, and the second item is False which tells the original parameters were incorrect: (['slope', 'intercept', '*constants'], False) Given the output, now I can create the function with the correct header: def example(slope, intercept, *constants) Notes: You should make sure that your outputted list does not change the order of the same parameter types, e.g. if given "disti" & "dist2", you should never return a list with "dist2" coming before "dist1"). Hint The valid order of parameters is based on the four types of parameters (normal, default, *args, **kwargs). Review the lecture slides and try defining your own function with the different orders of the four parameter types. def parameter_debugger (*params) : >>> parameter_debugger('first', 'second=30', '*third', '**fourth') (['first', 'second=30', '*third', '**fourth'], True) >>> parameter_debugger('slope', '*constants', 'intercept') (['slope', 'intercept', '*constants'], False) >>> parameter_debugger('*tutor', 'professor="Marina"', '*ta', 'me') (['me', 'professor="Marina"', '*tutor'], False) # YOUR CODE IS HERE #
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started