hand
_1_5_52
4
返回栏目
1k
9k
1k
1k
5k
1k
1k
1k
1k
3k
2k
1k
0.8k
2k
3k
1k
1k
0.7k
0.9k
1k
0.6k
0.4k
0.4k
0.3k
3k
2k
9k
0.4k
0.4k
0.8k
0.5k
3k
5k
1k
2k
2k
3k
5k
1k
1k
0.4k
0.5k
0.4k
0.6k
0.7k
1k
0.4k
0.3k
4k
0.5k
0k
0.3k
0k
0.2k
0.2k
0.3k
0.9k
0.9k
0.1k
0.9k
0.9k
1k
0.5k
6k
0.3k
0.4k
0.7k
0.6k
8k
3k
1k
1k
1k
1k
0k
2k
1k
1k
0.2k
5k
4k
5k
0.4k
0.8k
1k
1k
1k
0.1k
2k
1k
2k
6k
0k
2k
7k
1k
5k
2k
3k
1k
0k
1k
0.9k
0.4k
0.2k
1k
3k
4k
1k
1k
1k
2k
3k
0.7k
0.3k
0.5k
0.6k
1k
0.9k
3k
0.3k
4k
返回python栏目
作者:
贺及楼
成为作者
更新日期:2024-10-27 12:14:22
@property
是 Python 中的一个装饰器,用于将类的方法转换为属性。使用 @property
可以访问类的方法时不需要加括号,就像访问属性一样。它使得类的接口更加直观,同时保持了方法的封装性和完整性。@property
常用于获取属性值,而对应的 @属性名.setter
用于设置属性值,提供了一种安全修改属性值的方式。
1.修饰方法,使方法可以像属性一样访问。
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 , 必须使用正常的调用方法的形式,即在后面加()
print(l.method_with_property()) # 错误的,不需要像方法那样调用
与所定义的属性配合使用,这样可以防止属性被修改。
class DataSet(object):
def __init__(self):
self._images = 1
self._labels = 2 # 定义属性的名称
@property
def images(self): # 方法加入@property后,这个方法相当于一个属性,这个属性可以让用户进行使用,而且用户有没办法随意修改。
return self._images
@property
def labels(self):
return self._labels
l = DataSet()
# 用户进行属性调用的时候,直接调用images即可,而不用知道属性名_images,因此用户无法更改属性,从而保护了类的属性。
print(l.images) # 加了@property后,可以用调用属性的形式来调用方法,后面不需要加()。
python
整章节共122节
快分享给你的小伙伴吧 ~