Python3之使用@property】的更多相关文章

property 特性 什么是特性property property 是一种特殊的属性,访问它时会执行一段功能(函数),然后返回值 例如 BMI指数(bmi是计算而来的,但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解) 成人的BMI数值: 过轻:低于18. 正常:18.5-23.9 过重:- 肥胖:- 非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^(m) EX:70kg÷(1.75×1.75)=22.86 ''' class People: def _…
在绑定属性时,如果我们直接把属性暴露出去,虽然写起来简单,但是,没有办法检查参数,导致可以把成绩随便改 >>> class Student(object): ... pass ... >>> s=Student() >>> s.score=999 >>> s.score 999 >>> s.score='abc' >>> s.score 'abc' 这显然不会逻辑,为了现在score的范围可以,通过…
django提供了内置装饰器 @staticmethod\@classmethod\property 在OSQA中,@property的使用频率是非常高的.下面就是它的使用方法: @property 可以将python定义的函数“当做”属性访问,从而提供更加友好访问方式,和java中的setter和getter类似. models.py中如下: from django.db import models class Person(models.Model): G=(('chen','jian'),…
传统的绑定属性值,会把属性暴露出去,而且无法检查参数是否合法,如下: class Test(object): def  __int__(self,age): self.age = age 为了检查参数的合法性,可以设置一个get_age()方法,和一个set_age()方法,如下: class Test(object): def get_age(self): return self.__age def set_age(self,value): if not instance(value,int)…
@property装饰器就是负责把一个方法变成属性调用的. @property广泛应用在类的定义中,可以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性 class Student(object): @property def score(self): return self._score @score.setter def score(self, value): if not isinstance(value, int): raise ValueErr…
基础概念 1.速查笔记: #-- 最普通的类 class C1(C2, C3): spam = 42 # 数据属性 def __init__(self, name): # 函数属性:构造函数 self.name = name def __del__(self): # 函数属性:析构函数 print("goodbey ", self.name) I1 = C1('bob') #-- Python的类没有基于参数的函数重载 class FirstClass: def test(self,…
python是动态语言,可以随时随地给实例对象添加属性和方法,但是我们想限制属性的名字,可以使用__slots__特殊变量来限制 使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的.只有当前类中才有作用 @property 把方法变成属性一样方便的调用 -------------------多重继承 通过多重继承,一个子类就可以同时获得多个父类的所有功能. ------------------定制类() 增加一个__str__方法 直接输入c…
""" """ __author__ = 'shaozhiqi' # 绑定属性时,如果我们直接把属性暴露出去,虽然写起来很简单, # 但是,没办法检查参数,导致可以把参数随便改 # 比如想限制student score的范围 class Student(object): def get_score(self): return self._score def set_score(self, value): if not isinstance(val…
#!/usr/bin/env pthon#coding:utf-8 class person(object): def __init__(self,name,sex,age,surface,height,relationship,fortune): #定义人的姓名.性别.身高.关系.财产 self.__Name=name self.__Sex=sex self.__Surface=surface self.__Height=height self.__Relationship=relations…
在面向对象的语言中,除了方法.对象,剩下的一大重点就是类了,从意义上来讲,类就是对具有相同行为对象的归纳.当一个或多个对象有相同属性.方法等共同特征的时候,我们就可以把它归纳到同一个类当中.在使用上来讲,类的存在,就是为了方便管理对象.python中定义一个类的代码如下: class Simple_class(object): #定义一个名为Simple_class的类,python3以后默认object做为类的基类,这里不讨论新式和旧式类的区别 height = 1.58#定义一个类变量 de…