class里面的pubilc和private
时间: 2023-05-01 19:04:03 浏览: 72
public和private是面向对象编程中的访问修饰符,用于控制类的属性和方法的访问权限。public表示该属性或方法可被该类的实例对象及外部对象访问,而private则表示该属性或方法只能被该类的实例对象访问,无法被外部对象访问。
相关问题
class中的public和private
在面向对象编程中,类中的成员变量和成员函数可以被标记为 public 或 private。
- public 成员可以在类的内部和外部被访问和使用。
- private 成员只能在类的内部被访问和使用。
使用 public 和 private 可以帮助程序员更好地组织和管理类的代码,并且可以提高程序的安全性和可维护性。
class private public
在面向对象编程中,"private"和"public"是用于描述类成员访问权限的关键字。
在Python中,没有严格的私有(private)和公共(public)成员的概念。但是,Python中的一个惯例是,以双下划线("__")开头的属性和方法被视为私有成员,其他的属性和方法被视为公共成员。这种约定并不是强制性的,Python仍然允许通过类实例直接访问私有成员,只是不推荐这样做。
下面是一个示例代码,演示了Python中私有属性和公共属性的定义和访问:
```
class MyClass:
def __init__(self):
self.__private_attr = '私有属性'
self.public_attr = '公共属性'
def __private_method(self):
print('这是私有方法')
def public_method(self):
print('这是公共方法')
self.__private_method()
my_obj = MyClass()
print(my_obj.public_attr)
my_obj.public_method()
```
在上面的代码中,`__private_attr`和`__private_method`被视为私有成员,`public_attr`和`public_method`被视为公共成员。尝试通过类实例直接访问私有成员:
```
print(my_obj.__private_attr) # 报错
my_obj.__private_method() # 报错
```
会导致AttributeError异常。但是,可以通过以下方式访问私有成员:
```
print(my_obj._MyClass__private_attr) # 输出:'私有属性'
my_obj._MyClass__private_method() # 输出:'这是私有方法'
```
这种方式并不是Python官方推荐的,因为它违反了Python的"we're all consenting adults here"(大家都是成年人,在这里没有严格的限制)的设计原则,所以最好还是遵循Python的约定,将以双下划线开头的属性和方法视为私有成员。