In Python, a function is a block of code that performs a specific task. Functions are defined using the
def keyword followed by the function name and parentheses. Sometimes, you may encounter a
SyntaxError with the message “can’t assign to function call”. This error occurs when you try to assign a value to a function call.
Understanding the Error
In Python, a function call is a way to execute a function that has been defined in the code. It is done by using the function name followed by parentheses, which may contain arguments that are passed to the function. Depending upon the type of function, the function can return a value or
So, a function call is used to execute a function and get some resulting value. Now, if you try to assign a value to a function call, you’ll get a
SyntaxError. Let’s look at an example.
def my_function(): print("Hello, folks!") my_function() = "some value"
Cell In, line 4 my_function() = "some value" ^ SyntaxError: cannot assign to function call
Here, we created a function,
my_function() that prints a message when called and doesn’t return any value (it returns None). We then try to assign a value (the string, “some value”) to the function call itself and we get
SyntaxError: cannot assign to function call.
A function call is not a variable that you can use to store or assign value and thus we get this error.
Fixing the Error
Depending upon your exact use case you can fix this error in the following ways –
1) Use a variable to store the value
You can use a different variable to store the value that you’re trying to store.
- Harvard University Data Science: Learn R Basics for Data Science
- Standford University Data Science: Introduction to Machine Learning
- UC Davis Data Science: Learn SQL Basics for Data Science
- IBM Data Science: Professional Certificate in Data Science
- IBM Data Analysis: Professional Certificate in Data Analytics
- Google Data Analysis: Professional Certificate in Data Analytics
- IBM Data Science: Professional Certificate in Python Data Science
- IBM Data Engineering Fundamentals: Python Basics for Data Science
- Harvard University Learning Python for Data Science: Introduction to Data Science with Python
- Harvard University Computer Science Courses: Using Python for Research
- IBM Python Data Science: Visualizing Data with Python
- DeepLearning.AI Data Science and Machine Learning: Deep Learning Specialization
- UC San Diego Data Science: Python for Data Science
- UC San Diego Data Science: Probability and Statistics in Data Science using Python
- Google Data Analysis: Professional Certificate in Advanced Data Analytics
- MIT Statistics and Data Science: Machine Learning with Python - from Linear Models to Deep Learning
- MIT Statistics and Data Science: MicroMasters® Program in Statistics and Data Science
🔎 Find Data Science Programs 👨💻 111,889 already enrolled
Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.
def my_function(): print("Hello, folks!") a = "some value"
Here, we use the variable
a to store the string value “some value”. Notice that we did not get any errors here.
== if you’re trying to check for equality
A common scenario in which this error occurs is that people use
= (which is the assignment operator) in place of
== (the equality operator) and thus run into this error.
Often times when a function returns a value, you might want to compare it with some other value. In this case, you need to use the equality operator
== which checks whether the two values are equal or not.
Let’s look at an example.
def add(a, b): return a+b # check if add(2, 3) is equal to 5 add(2, 3) == 5
Here, we created a function
add() that takes two parameters and returns their sum. We then call the add function with pass 2 and 3 as parameters and compare the return value with 5 (which is the sum of 2 and 3). In this case, we do not get an error because we are using the
== operator to check for equality.
If you instead use the assignment operator,
=, you’ll get an error because assigning a value to a function call is not allowed (and it doens’t make any snense to do so).
In conclusion, the “SyntaxError: cannot assign to function call” error in Python occurs when you try to assign a value to a function call, which is not allowed in Python. To fix this error, you need to make sure that you are assigning the value to a variable and not to a function call. Additionally, you should check if you’re using
= in place of
== when comparing the result of a function call to a value. By following these steps, you should be able to resolve this error and continue with your Python programming.
You might also be interested in –