python提供的内置装饰器——staticmethod、classmethod和property
在OSQA中,@property的使用频率是非常高的。下面就是它的使用方法:
@property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,和java中的setter和getter类似。
models.py中如下:
from django.db import models
class Person(models.Model):
G=(('chen','jian'),('hong','yi'),('rt','ju'))
gender=models.CharField(max_length=20,choices=G)
@property
def Gender(self):
return self.gender
@Gender.setter
def Gender(self,new_value):
self.gender=new_value
在views.py中使用:
from django.http import HttpResponse
from mytest.models import *
def index(request):
print Person.objects.all()[0].Gender
b=Person.objects.all()[0]
b.Gender='adfasfasd'
print b.Gender
b.save()
return HttpResponse(Person.objects.all()[0].Gender)
@property提供的是一个只读的属性,如果需要对属性进行修改,那么就需要定义它的setter。
本文深入解析Python中的@property装饰器,详细讲解其作为只读属性的作用,并通过实例展示如何在实际项目中灵活运用。同时,探讨了setter方法的必要性以及如何实现对属性的修改。
1063

被折叠的 条评论
为什么被折叠?



