python 直接访问私有变量不报错

在Python中,虽然可以使用c.__radius = 7这种方式直接访问私有变量,但这实际上是在给对象c添加了一个名为__radius的公有属性,因此不会报错。这种方式违反了封装原则,通常不建议这样做。如果按照下面的代码执行,则会报错:import math class Circle:def __init__(self, radius):self.__radius =...
python 直接访问私有变量不报错
在Python中,虽然可以使用c.__radius = 7这种方式直接访问私有变量,但这实际上是在给对象c添加了一个名为__radius的公有属性,因此不会报错。这种方式违反了封装原则,通常不建议这样做。如果按照下面的代码执行,则会报错:

import math

class Circle:

def __init__(self, radius):

self.__radius = radius

def getRadius(self):

return self.__radius

def setRadius(self, radius):

self.__radius = radius

c = Circle(5)

c.setRadius(7)

c.sd = 8

print(c.__radius, c.getRadius())

在这段代码中,首先创建了一个Circle对象c,其初始半径为5。接着,通过c.setRadius(7)方法将半径设置为7,并且给对象c添加了一个名为sd的公有属性。最后,尝试访问c.__radius和c.getRadius()。由于c.__radius在类的外部直接访问是无效的,因此会引发错误。

为了正确访问私有变量,应该使用类提供的方法,如c.getRadius()和c.setRadius(7)。这些方法可以用来设置和获取__radius的值,同时提供了一定程度的封装和控制。在实际编程中,遵循封装原则可以使代码更加安全和易于维护。2024-12-06
mengvlog 阅读 7 次 更新于 2025-07-22 16:35:40 我来答关注问题0
檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部