本文实例讲述了python中@property和property函数常见使用方法。分享给大家供大家参考,具体如下:

1、基本的@property使用,可以把函数当做属性用

class Person(object):

@property

def get_name(self):

print('我叫xxx')

def main():

person = Person()

person.get_name

if __name__ == '__main__':

main()

运行结果:

我叫xxx

2、@property的set,deleter,get

class Goods(object):

@property

def price(self):

print('@property')

@price.setter

def price(self,value):

print('@price.setter:'+str(value))

@price.deleter

def price(self):

print('@price.deleter')

obj = Goods()

obj.price = 50

obj.price

del obj.price

运行结果:

@price.setter:50

@property

@price.deleter

3、@property demo

class Goods(object):

def __init__(self):

#原价

self.original_price = 100

#折扣

self.discount = 0.8

@property

def price(self):

#实际价格=原价*折扣

new_price = self.original_price*self.discount

return new_price

@price.setter

def price(self,value):

self.original_price = value

@price.deleter

def price(self):

del self.original_price

obj = Goods()

obj.price

obj.price = 200

del obj.price

4、property函数使用

class Foo(object):

def get_name(self):

print('get_name')

return 'laowang'

def set_name(self, value):

'''必须两个参数'''

print('set_name')

return 'set value' + value

def del_name(self):

print('del_name')

return 'laowang'

NAME = property(get_name, set_name, del_name, 'description.')

obj = Foo()

obj.NAME #调用get方法

obj.NAME = 'alex' #调用set方法

desc = Foo.NAME.__doc__ #调用第四个描述

print(desc)

del obj.NAME #调用第三个删除方法

运行结果:

get_name

set_name

description.

del_name

5、property函数操作私有属性的get和set方法

class Person(object):

def __init__(self, age):

self.__age = age

def set_age(self, value):

self.__age = value

def get_age(self):

return self.__age

AGE = property(get_age, set_age)

person = Person(15)

person.AGE = 20

print(str(person.AGE))

运行结果:

20

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

python中property方法有用_python中@property和property函数常见使用方法示例相关推荐

  1. python计算长方形周长代码_python微元法计算函数曲线长度的方法

    计算曲线长度,根据线积分公式: ,令积分函数f(x,y,z) 为1,即计算曲线的长度,将其微元化: 其中 根据此时便可在python编程实现,给出4个例子,代码中已有详细注释,不再赘述 ''' 计算曲 ...

  2. python中ttk详解_Python 中的Property 动态属性和特性详解

    在Python开发时,考虑到安全性,我们会通过使用 '__' 定义私有属性,以限制类外或者子类都不能直接进行访问.操作.但同时,这些私有属性并不是一成不变的,所以我们还需要提供私有属性的对外操作方式. ...

  3. python判断字符串中包含某个字符串_Python中最常用的字符串方法!

    译 / 忧郁的红秋裤 字符串是字符序列.Python中内置的string类代表基于Unicode国际字符集的字符串.除了Python中常见的操作外,字符串还有一些专属于它们的附加方法.下图显示了所有这 ...

  4. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  5. python把字符串放到列表_python中for循环把字符串或者字典添加到列表的方法

    python中如何for循环把字符串添加到列表? 实例: 1.单个字符串用for循环添加到列表中: # 把L1中的字符串添加到列表alist里面 L1 = 'MJlifeBlog' alist = [ ...

  6. python的requests模块功能_python中requests模块的使用方法

    本文实例讲述了python中requests模块的使用方法.分享给大家供大家参考.具体分析如下: 在HTTP相关处理中使用python是不必要的麻烦,这包括urllib2模块以巨大的复杂性代价获取综合 ...

  7. python复制文件的方法是_Python中复制文件的9种方法

    Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...

  8. python 获取 字典中的指定键_python中字典方法的详细教程

    上篇文章讲到了python字典的基础知识,今天继续python中哈希(字典的应用)方法的应用. 前章回顾: python字典的应用及案例分析 字典方法: dict.clear() 删出字典内所有的元素 ...

  9. python实现链表的删除_Python中 为我们提供了一些独特的解决方案的方法特性

    实际上,在日常的工作中,我们很多需求,无论是常见的.还是不常见的,Python 都为我们提供了一些独特的解决方案,既不需要自己造轮子,也不需要引入新的依赖(引入新的依赖势必会增加项目的复杂度). 但是 ...

最新文章

  1. 迷宫android游戏代码,C++打造迷宫游戏,直接上代码
  2. kubernetes1.8.4 安装指南 -- 8. 安装Kube DNS
  3. openkruise 缩容_Linus 本尊也来了!为什么 KubeCon 越来越火了?
  4. python动态图形_利用matplotlib实现根据实时数据动态更新图形
  5. html5+自动更换背景图片,html 随机切换背景图片
  6. 计算机自检报错无法开机,电脑开机不自检无显示是怎么回事?
  7. 计算机无法打开pdf文件夹,计算机打开PDF文档时发生错误. 如何修复损坏的文件...
  8. 分布式轻量级任务调度框架-XXL-JOB(最全面,附带本人实战)
  9. python在煤矿的用途-息烽高校邦数据科学通识课【Python爬虫】答案
  10. mac正常连wifi,无法解析域名
  11. 赋值表达式与赋值语句
  12. 写一个函数,使给定的一个3 × 3的二维整型数组转置,即行列互换。
  13. ¥符号在安卓上显示只有一个横杠的问题
  14. node js批量导出PDF 导出压缩为zip 拆分设计 文件压缩 批量导出设计
  15. 手把手Excel图表美化(1)--仪表图
  16. 中国中药提取物市场深度研究分析报告
  17. 一个陌生女人的来信-未完不续
  18. Android支付宝错误码62009,[payment支付宝:62009]未知错误;到底什么问题啊啊啊啊啊...
  19. Android开发免费短信验证码SDK。
  20. springboot1:项目启动

热门文章

  1. yum安装php5.6 nginx,CentOS 7 yum安装 Nginx1.16 + MySQL5.5 PHP5.6
  2. c语言330转化成字符,c/字符串,字符转数字,数字转字符(转)
  3. ajax请求 禁用缓存,jQuery ajax缓存禁用无法正常工作?
  4. 苹果mac休眠快捷键_Mac技巧|如何高效使用苹果便笺?用便笺快捷键快速完成操作...
  5. 无极菜单 php,ThinkPHP菜单无极分类 ThinkPHP菜单无极分类实例讲解
  6. html5图片自动翻转特效,CSS3带动态阴影效果的3D图片翻转特效
  7. 【Docker】docker-compose安装
  8. Win10上rabbitmq 安装
  9. 【JavaScript】【JQuery】获取 data-* 属性值
  10. jquery : 动态构建表单自动提交请求