What will be the output of the following Python code?class objects: def __init__(self): self.colour = None self._shape = "Circle" def display(self, s): self._shape = sobj=objects()print(obj._objects_shape)The program runs fine because name mangling has been properly implementedError because the member shape is a protected memberError because the proper syntax for name mangling hasn’t been implementedError because the member shape is a private member
Question
What will be the output of the following Python code?class objects: def init(self): self.colour = None self._shape = "Circle" def display(self, s): self._shape = sobj=objects()print(obj._objects_shape)The program runs fine because name mangling has been properly implementedError because the member shape is a protected memberError because the proper syntax for name mangling hasn’t been implementedError because the member shape is a private member
Solution
The output of the Python code will be an error because the proper syntax for name mangling hasn’t been implemented.
In Python, name mangling is used for variables that are meant to be private to a class and it is implemented by prefixing the variable name with double underscore "__". In the given code, the variable '_shape' is prefixed with a single underscore, which is a convention for indicating that a variable or method is intended for internal use within the class (it's a protected member), but it doesn't actually prevent access to it.
However, the print statement is trying to access '_objects_shape' which is not defined. If it was trying to access the '_shape' variable, it should have been written as 'print(obj._shape)'.
So, the error is due to the incorrect variable name being accessed, not because of the lack of name mangling.
Similar Questions
What will be the output of the following Python code?class A: def __init__(self): self.__x = 1class B(A): def display(self): print(self.__x)def main(): obj = B() obj.display()main()10Error, invalid syntax for object declarationError, private class member can’t be accessed in a subclass
What will be the output of the following Python code? class student: def __init__(self): self.marks = 97 self.__cgpa = 8.7 def display(self): print(self.marks)obj=student()print(obj._student__cgpa) The program runs fine and 8.7 is printed Error because private class members can’t be accessed Error because the proper syntax for name mangling hasn’t been implemented The program runs fine but nothing is printedClear ResponseSave & Next
What will be the output of the following Python code?class Demo: def __init__(self): self.a = 1 self.__b = 1 def display(self): return self.__bobj = Demo()print(obj.a)The program has an error because there isn’t any function to return self.aThe program has an error because b is private and display(self) is returning a private memberThe program runs fine and 1 is printedThe program has an error as you can’t name a class member using __b
class student: def __init__(self): self.marks = 97 self.__cgpa = 8.7 def display(self): print(self.marks)obj=student()print(obj._student__cgpa) The program runs fine and 8.7 is printed Error because private class members can’t be accessed Error because the proper syntax for name mangling hasn’t been implemented The program runs fine but nothing is printed
What will be the output of the following Python code?class fruits: def __init__(self): self.price = 100 self.__bags = 5 def display(self): print(self.__bags)obj=fruits()obj.display() The program has an error because display() is trying to print a private class memberThe program runs fine but nothing is printedThe program runs fine and 5 is printed The program has an error because display() can’t be accessed
Upgrade your grade with Knowee
Get personalized homework help. Review tough concepts in more detail, or go deeper into your topic by exploring other relevant questions.