属性的定义和调用

1,定义时,在普通方法的基础上添加@property装饰器

2,定义时,属性仅有一个self参数

3,调用时,无需括号

vim day7-8.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
class Pager(): def __init__(self,current_page):
self.current_page = current_page #代表第几页
self.per_items = 10 #每页显示行数 @property
def start(self): #开始的序号
val = (self.current_page - 1) * self.per_items + 1
return val @property
def end(self): #结束序号
val = self.current_page * self.per_items
return val p = Pager(2)
print p.start
print p.end

使用以上方法可以根据页数取得需要查询的数据的序号开始和结束值

这里使用属性的方法是为了调用看起来更加合理

取消属性装饰器,调用的时候就要加()

所以以上代码和以下代码的效果的一样的

#!/usr/bin/python
# -*- coding:utf-8 -*-
class Pager(): def __init__(self,current_page):
self.current_page = current_page #代表第几页
self.per_items = 10 #每页显示行数 # @property
def start(self): #开始的序号
val = (self.current_page - 1) * self.per_items + 1
return val # @property
def end(self): #结束序号
val = self.current_page * self.per_items
return val p = Pager(2)
print p.start()
print p.end()

PS:属性在编程时可能用不上,知道即可

  属性有两种表达方式一种是加property装饰器一种是使用property方法

对于新式类不仅仅支持property还支持

vim day7-9.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
class Goods(object): @property
def price(self):
print '@property' @price.setter
def price(self,value):
print '@property.setter' @price.deleter
def price(self):
print '@property.deleter' obj = Goods() obj.price #自动执行 @property修饰的price方法,并获取方法的返回值
obj.price = 123 #自动执行 @price.setter装饰的price方法,并将123赋值给方法
del obj.price #自动执行 @price.deleter装饰的price方法
~

PS:知道即可,很少用

Python面向对象之属性的更多相关文章

  1. python 面向对象 私有属性

    __init__构造函数 self.name = name # 属性, 实例变量,成员变量,字段 def sayhi()# 方法, 动态属性 私有属性不对外看到 前面加上__ class role() ...

  2. python面向对象之类属性,实例属性

    python中的属性分为类属性和实例属性,之前已经说过一些,这里主要是对类属性与实例属性的增删改查 首先是对类属性的增删改查,下面这个是对类属性的修改,在书写类时,已经对类属性occupation进行 ...

  3. python 面向对象 公有属性

    公有属性定义  公有属性也叫作类变量  静态字段 class role(): # 传参数 # 公有属性都在这里定义 # 在类里直接定义的属性即是公有属性 nationality = 'JP' def ...

  4. Python面向对象之类属性类方法静态方法

    类的结构 实例 使用面向对象开发时,第一步是设计类: 当使用 类名() 创建对象时,会自动执行以下操作: 1.为对象在内存中分配空间--创建对象: 2.为对象的属性 设置初始值--初始化方法(init ...

  5. Python面向对象 | 类属性

    property property是一个装饰器函数,可以将一个方法伪装成属性,调用的时候可以不用加().@property被装饰的方法,是不能传参数的,因为它伪装成属性了. 装饰器的使用:在要装饰的函 ...

  6. python -- 面向对象编程(属性、方法)

    一.属性 对象的属性(attribute)也叫做数据成员(data member). 如果想指向某个对象的属性,可以使用格式: object.attribute 属性又分为:私有属性和公有属性. 私有 ...

  7. python 面向对象 公有属性 用在哪里

    公有属性也可以叫做静态字段 如果每个对象都有一个共同的值 , 应该把它设置为公有属性 公有属性使用场景,每个对象中保存相同的东西时,可以使用公有属性 类找公有属性 过程

  8. Python面向对象—类属性和实例属性

    属性:就是属于一个对象的数据或函数元素 类有类方法.实例方法.静态方法.类数据属性(类变量)和实例数据属性(实例变量). 类属性:包括类方法和类变量,可以通过类或实例来访问,只能通过类来修改. 实例属 ...

  9. python面向对象基础-属性/方法

随机推荐

  1. 让树莓派自动上报IP地址到邮箱,二代B

    由于我使用树莓派的场景大多数是在没有显示器.只用terminal连接它的情况下,所以,它的IP地址有时会在重启之后变掉(DHCP的),导致我无法通过terminal连接上它.然后我又要很麻烦地登录路由 ...

  2. ios开发之--时间格式化

    字符串转时间 iOS 中 NSDate 是时间管理类,这里获取到的时间是 UTC 时间,可以根据需要转换成任意地区的时间. NSFormatter 类是时间格式化类,可以根据指定的格式.地区将指定的时 ...

  3. 【代码审计】CmsEasy_v5.7 代码执行漏洞分析

      0x00 环境准备 CmsEasy官网:http://www.cmseasy.cn/ 网站源码版本:CmsEasy_v5.7_UTF8-0208 程序源码下载: http://ftp.cmseas ...

  4. HTML 样式

    style 属性用于改变 HTML 元素的样式,常见的样式如下: 定义字体颜色:style="color:red"定义字体大小:style="font-size:20px ...

  5. 【重要】U3D存放本地游戏存档——不同平台载入XML文件的方法——IOS MAC Android

    在PC上和IOS上读取XML文件的方式略有差别,经测试,IOS上不支持如下方法载入XML文件: XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load( ...

  6. JQuery选择器和DOM的操作-入门学习

    嘿嘿,今天学习了JQuery,前面的一周都在学习javascript,今天学习了JQuery,虽然javascript的类库有很多个,例如:Prototype,Dojo,JQuery等,javascr ...

  7. 在input中既隐藏边框,也隐藏轮廓的设置

    在设置input的时候,我们往往不想显示边框,所以通常会在css里面写"border"none",但是结果往往差强人意,如下图 我们这个时候可以加一个属性来把它的轮廓也隐 ...

  8. intellij中使用git插件将项目上传到码云

    参考帖子: git上传本地Intellij idea 项目到码云的git仓库中(评论中有彩蛋,一定要看) IntelliJ-IDEA和Git.GitHub.Gitlab的使用 使用idea上传项目到码 ...

  9. thinkphp3.2 实现二级导航和高亮显示

    一.控制器代码如下: public function index(){ //高亮显示 $action = CONTROLLER_NAME."/".ACTION_NAME; $thi ...

  10. 生产环境mysql的参数设置不一样,好好的程序,又出错

    一.概述 报错信息如下: org.springframework.jdbc.BadSqlGrammarException: ### Error querying database.  Cause: c ...