top of page
learn_data_science.jpg

Data Scientist Program

 

Free Online Data Science Training for Complete Beginners.
 


No prior coding knowledge required!

constructing a function never been easier !

Writer's picture: Rawda RumaiehRawda Rumaieh

Have you ever spent time to determine how many arguments you should pass to your function?

After each line of code you realize you should add one more argument to the function?

Did you run into errors because of passing more of less parameters to the function?



Well after learning this python concept you will never have to worry again about these issues !


 

*args / **kwargs are special symbols used for passing arguments

*args is when we are passing (non key-word arguments list on which operations of the list can be performed)

while **kwargs is we are passing (key-word arguments)

passes variable number of keyword arguments dictionary to function on which operation of a dictionary can be performed

to elaborate with an example:


let's start with *args and define a function that sums two numbers the user will enter


def sum_this(a,b):
     result=a+b
     return result

If we passed more than two arguments an error will appear telling us:

TypeError: sum_this() takes 2 positional arguments but 3 were given

To fix this error:

#defining a function that will take a list of arguments 
def sum_these(*args):
    #defning the variable 
    sum_this=0
    for i in args:
        #adding all the values in the args list together
        sum_this=sum_this+i
    return sum_this 

I can now pass to the functions as much arguments as I wish

print(sum_these(1,2,3,4,5))

and the function will sum them all .. I can call the same function with the double amount of arguments without worrying about how many arguments I constructed the function with.


For **Kwargs:

#printing information of clients
def print_info(**kwargs):
    for key , val in kwargs.items():
        print(key,":",val)
print_info(Firstname="Rawda", Lastname="Rumaieh", Age=22, Phone=12345678910,country="Egypt")

we **kwargs the same as a dictionary

On a side note:

we can rename kwargs and args with whatever name we like just don't forget the * if it's a non key-word argument and ** if it's a key-word argument

 

To recap:

we use **kwargs and *args for:

  1. functions we don't fully understand what's going on with them

  2. functions having many different features you are not aware of

  3. functions features we will not use at first

0 comments

Recent Posts

See All

Commentaires


COURSES, PROGRAMS & CERTIFICATIONS

 

Advanced Business Analytics Specialization

Applied Data Science with Python (University of Michigan)

Data Analyst Professional Certificate (IBM)

Data Science Professional Certificate (IBM)

Data Science Specialization (John Hopkins University)

Data Science with Python Certification Training 

Data Scientist Career Path

Data Scientist Nano Degree Program

Data Scientist Program

Deep Learning Specialization

Machine Learning Course (Andrew Ng @ Stanford)

Machine Learning, Data Science and Deep Learning

Machine Learning Specialization (University of Washington)

Master Python for Data Science

Mathematics for Machine Learning (Imperial College London)

Programming with Python

Python for Everybody Specialization (University of Michigan)

Python Machine Learning Certification Training

Reinforcement Learning Specialization (University of Alberta)

Join our mailing list

Data Insight participates in affiliate programs and may sometimes get a commission through purchases made through our links without any additional cost to our visitors.

bottom of page