面向对象之property
property功能
- 以调用数据属性的方式(不用加括号)调用方法
- 方法定义成数据属性(方法本应该是动词)
- # 定义property之前
- class People:
- def __init__(self,name,age,height,weight):
- self.name=name
- self.age=age
- self.height=height
- self.weight=weight
- def bmi(self):
- return self.weight /(self.height*self.height)
- whq=People('whq',20,1.65,65)
- whq.height=1.82
- print(whq.bmi())
- # 定义property之后
- class People:
- def __init__(self,name,age,height,weight):
- self.name=name
- self.age=age
- self.height=height
- self.weight=weight
- @property
- def bmi(self):
- return self.weight /(self.height*self.height)
- whq=People('whq',20,1.65,65)
- whq.height=1.82
- print(whq.bmi)#此处不用加括号调用
面向对象之property的更多相关文章
- 面向对象 - 封装/property - 总结
面向对象 - 封装: 封装:在类定义阶段,以__开头的属性名发生了变形 eg: __x --> _A__x / __foo --> _A__foo 1.特点: 1.在类外部无法直接访问 _ ...
- Python面向对象 -- slots, @property、多重继承MixIn、定制类(str, iter, getitem, getattr, call, callable函数,可调用对象)、元类(type, metaclass)
面向对象设计中最基础的3个概念:数据封装.继承和多态 动态给class增加功能 正常情况下,当定义了一个class,然后创建了一个class的实例后,可以在程序运行的过程中给该实例绑定任何属性和方法, ...
- 面向对象之—property,staticmethod
一 特性( property) property是一种特殊的属性,访问它时会执行一段功能(函数)然后返回值. property是内置的一种封装方法:把一个属性“伪装”成一个数据属性,做法就是在需要伪装 ...
- python 面向对象七 property() 函数和@property 装饰符
一.property引入 为了使对象的属性不暴露给调用者和进行属性值检查,设置了访问属性的接口函数,使用函数访问属性,并可以在函数内部检查属性. >>> class Student( ...
- Python - 面向对象编程 - @property
前言 前面讲到实例属性的时候,我们可以通过 实例对象.实例属性 来访问对应的实例属性 但这种做法是不建议的,因为它破坏了类的封装原则 正常情况下,实例属性应该是隐藏的,只允许通过类提供的方法来间接实现 ...
- Python基础理论 - 函数
函数是第一类对象:可以当做数据来传 1. 可以被引用 2. 可以作为函数参数 3. 可以作为函数返回值 4. 可以作为容器类型的元素 小例子: def func1(): print('func ...
- Django项目——CRM
一.开发背景 由于公司人员的增多,原来通过excel表格存取方式过于繁琐,而且对于公司人员的调配和绩效考核等不能做到精确处理,所以开发crm系统,开始开发只是针对销售人员和客户,后面陆续加上一些操作, ...
- crm的知识点整理
''' # 1. 通过ChangeList封装好多数据 # 2. 销售中公共资源:Q查询,3天 15天 from django.db.models import F,Q F 使用查询条件的值,专门取对 ...
- crm 中使用的Django方法
. 通过ChangeList封装好多数据 . 销售中公共资源:Q查询,3天 15天 . 使用yield实现 - 生成器函数,对数据进行加工处理 - __iter__和yield配合 . 获取Model ...
随机推荐
- 3.nginx日志
1. 自定义日志格式为json log_format json '{"@timestamp":"$time_iso8601",' '"@version ...
- NEXIQ 125032 USB Link Diesel Truck Diagnose Interface Introduction
What are the features of nexiq usb link? 1.Compatible with applications that diagnose engines, trans ...
- 解决js array的key不为数字时获取长度的问题
最近写js时碰到了当数组key不为数字时,获取数组的长度为0 的情况. 1.问题场景 var arr = new Array(); arr[‘s1‘] = 1001; console.log(arr. ...
- web.py简易示例
http://webpy.org/cookbook/index.zh-cn code.py import web urls = ( '/', 'index' ) class index: def GE ...
- SQLite3开发接口函数详解
SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和API. SQLite3是为了满足以下的需求而开发的: ...
- js操作cookie的函数
///设置cookiefunction setCookie(NameOfCookie, value, expiredays) { var ExpireDate = new Date(); Expire ...
- axios的兼容性
axios的兼容性处理 一.简介 看看官网的简介: “Promise based HTTP client for the browser and node.js” 译:基于 Promise 的 H ...
- android和Linux下getopt的差别
1. Linux下如果找不到相对应的参数,则会跳过继续找下一个 Android下如果找不到则会直接返回-1,跳出来 2. Linux下通过getopt后会把找到的元素放到数组的前面,没找到的往后移动( ...
- Oracle和SQL server查询数据库中表的创建和最后修改时间
有时候我们需要查看下数据数据库中表的创建时间和最后修改时间,可以通过以下语句实现: Oracle数据库 -- 查看当前用户下的表 SELECT * FROM USER_TABLES -- 查看数据库中 ...
- ubuntu下部署django
一:保证python运行环境安装 apt-get install python 如果需要进行开发则还要安装python-dev apt-get install python-dev 二:安装djang ...