“Python中的类”的版本间差异
跳到导航
跳到搜索
(创建页面,内容为“==属性== 可以为对象的属性使用双下划线开头,__xxx 。 双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访…”) |
无编辑摘要 |
||
第4行: | 第4行: | ||
其实隐藏属性只不过是 Python自动为属性改了一个名字; |
其实隐藏属性只不过是 Python自动为属性改了一个名字; |
||
实际上是将名字修改为了,_类名__属性名 , 比如 __name -> _Person__name 。 |
实际上是将名字修改为了,_类名__属性名 , 比如 __name -> _Person__name 。 |
||
===装饰器=== |
|||
*使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改。 |
|||
class DataSet(object): |
|||
@property |
|||
def method_with_property(self): ##含有@property |
|||
return 15 |
|||
def method_without_property(self): ##不含@property |
|||
return 15 |
|||
l = DataSet() |
|||
print(l.method_with_property) # 加了@property后,可以用调用属性的形式来调用方法,后面不需要加()。 |
|||
print(l.method_without_property()) #没有加@property , 必须使用正常的调用方法的形式,即在后面加() |
2021年8月26日 (四) 14:04的版本
属性
可以为对象的属性使用双下划线开头,__xxx 。 双下划线开头的属性,是对象的隐藏属性,隐藏属性只能在类的内部访问,无法通过对象访问; 其实隐藏属性只不过是 Python自动为属性改了一个名字; 实际上是将名字修改为了,_类名__属性名 , 比如 __name -> _Person__name 。
装饰器
- 使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改。
class DataSet(object): @property def method_with_property(self): ##含有@property return 15 def method_without_property(self): ##不含@property return 15
l = DataSet() print(l.method_with_property) # 加了@property后,可以用调用属性的形式来调用方法,后面不需要加()。 print(l.method_without_property()) #没有加@property , 必须使用正常的调用方法的形式,即在后面加()