python:私有属性和共有属性详解

简介: python类的成员没有访问控制限制,这与其他面向编程的语言不同。

python类的成员没有访问控制限制,这与其他面向编程的语言不同。

通常约定以两个下划线开头,但是不以两个下划线结束的属性是私有的,其他为公共的。注意,不能直接访问私有属性,但可以通过方法中访问。

举个栗子:

class A:
    __name='class A'
    def dd(self):
        print('私有属性')
sg=A()
sg.dd()
print(sg.__name)

运行结果

Traceback (most recent call last):
  File "G:/I like study/1.6.py", line 7, in <module>
    print(sg.__name)
AttributeError: 'A' object has no attribute '__name'
私有属性

所以不能直接访问私有属性,不然直接报错。。

但可以在方法中访问

class A:
    __name='class A'
    def dd(self):
        print(A.__name)
sg=A()
sg.dd()

运行结果

class A
相关文章
|
2月前
|
缓存 Java Python
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用(1)
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用(1)
|
12天前
|
存储 程序员 Python
Python类属性与实例属性详解
Python 中区分类属性和实例属性的设计是为了满足不同的需求和使用场景。这种区分使得代码更加灵活、清晰,并且能够提供更好的封装性和可维护性。类属性用于表示与整个类相关的数据,而实例属性则用于表示每个实例的特定信息。这样,我们可以将关注点分离开来,使得代码更易于理解、维护和扩展。在实际应用中,我们可以根据具体的情况,选择适当的属性类型来组织和管理代码。
13 1
|
12天前
|
存储 搜索推荐 Python
【随手记】python语法:类属性和实例属性
【随手记】python语法:类属性和实例属性
24 1
|
15天前
|
存储 Python
Python成员属性的内存特性与底层内存优化方案
这篇博客主要分享一下python成员属性的内存特性,也就是python底层节约内存的优化方案
|
25天前
|
Python
Python中访问不存在的属性
【6月更文挑战第4天】
16 5
|
27天前
|
Python
Python尝试访问不存在的属性或方法
【6月更文挑战第2天】
14 3
|
2月前
|
SQL 分布式计算 算法
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用
python-静态方法staticmethod、类方法classmethod、属性方法property_python staticmethod类内使用
|
2月前
|
Python
在Python中,类的属性可以分为公有属性和私有属性
【5月更文挑战第7天】Python类包含公有和私有属性。公有属性可直接外部访问,如`person.name`,而私有属性如`_name`需通过getter/setter方法访问,如`person.getName()`和`person.setName()`。私有属性用于封装数据、隐藏实现细节,增强代码可维护性和安全性。封装能灵活修改内部实现,不影响外部;安全性防止外部非法修改数据;一致性确保所有数据操作在类内完成,简化代码并减少错误。
36 10
|
2月前
|
Python
python属性错误(AttributeError)
【5月更文挑战第2天】python属性错误(AttributeError)
62 1
|
2月前
|
Python
Python常见的魔术方法和魔术属性(二)
Python常见的魔术方法和魔术属性(二)