Question

    Which of the following statements about parameter

    passing in Python is TRUE?
    A Python uses pass-by-value for all types of arguments. Correct Answer Incorrect Answer
    B Mutable objects are passed by reference, and immutable objects are passed by value Correct Answer Incorrect Answer
    C Python’s parameter passing mechanism is best described as “pass-by-object-reference.” Correct Answer Incorrect Answer
    D Arguments passed to a function are copied into a new variable scope. Correct Answer Incorrect Answer
    E A function cannot modify mutable arguments passed to it. Correct Answer Incorrect Answer

    Solution

    In Python, arguments are passed to functions using pass-by-object-reference , a hybrid approach where the behavior depends on the object’s mutability. For mutable objects (e.g., lists, dictionaries), functions can modify the object directly, as the reference points to the same memory location. For immutable objects (e.g., integers, strings), any attempt to modify them results in a new object being created, leaving the original object unchanged. For example: def modify_list(lst):     lst.append(4)   my_list = [1, 2, 3] modify_list(my_list) print(my_list)  # Output: [1, 2, 3, 4] In the case of immutables: def modify_int(x):     x += 1   num = 5 modify_int(num) print(num)  # Output: 5 This illustrates that Python’s approach is neither traditional pass-by-value nor pass-by-reference. Why Other Options Are Incorrect:

    • Option A: Python does not strictly follow pass-by-value. Instead, objects are passed as references, which may or may not result in modification based on their mutability.
    • Option B: This incorrectly splits the behavior based on mutability. Both mutable and immutable objects are passed by reference; the difference lies in how modifications are handled.
    • Option D: This is partially true in terms of scope but does not explain how references to objects work.
    • Option E: Functions can indeed modify mutable arguments, as shown in the first example.

    Practice Next