Câu hỏi phỏng vấn Python
Câu hỏi

Why are default values ...

Câu trả lời

In Python, default values are shared between objects due to the way the language handles function arguments and the instantiation of objects. This behavior is particularly noticeable with mutable default values.

Understanding Mutable Default Arguments

When a function or method in Python is defined, the default arguments are evaluated and created only once, not each time the function is called. This means that if a mutable object (like a list or dictionary) is used as a default value, the same instance of that object will be used in every call of the function where a new argument isn't provided.

For example, consider the following class definition:

class Example:
    def __init__(self, my_list=[]):
        self.my_list = my_list

Here, my_list is a mutable default argument. If an instance of Example modifies my_list, all instances of Example that use the default list will see this change because they all reference the same list object[1][2][3].

Why This Happens

This behavior occurs because of Python's handling of function definitions. The default value is bound to the function's parameter at the time the function is defined, and this object is then used every time the function is called without an argument for that parameter[1][2][3].

To avoid unintended side effects caused by this behavior, it is recommended to use immutable objects as default values or use None as a default value and then set...

senior

senior

Gợi ý câu hỏi phỏng vấn

middle

What is the function of self ?

middle

What is the difference between range and xrange ? How has this changed over time?

junior

What are descriptors?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào