#经常用到的方法class People:def __init__(self, name, weight, height):self.__name = nameself.__weight = weightself.__height = height@property #是一个内置装饰器,避免用户调用时候忘记加括号 def bmi(self):return self.__weight / self.__height ** 2a = People('老王', 85, 1.68)print(a.bmi)a.bmi = 25 #不可以赋值,如有需要接着向下看#了解知道即可的方法class People:def __init__(self, name):self.__name = name@property #通过此方法可以让用户不必加括号就可以执行里面的函数 def name(self):return self.__name@name.setter #通过这个方法可以让用户从外边对封装的私有属性进行修改 def name(self,val):if not isinstance(val, str):print('必须是str')return self.__name = val@name.deleter#通过此方法可以让用户从外边对私有属性删除 def name(self):print('不可以删除')s = People('老王')s.name = '王八' #通过上面的一系列操作就可以修改name啦print(s.name)del s.name
#property的古老的操作class Foo:def __init__(self,val):self.__NAME=val #将所有的数据属性都隐藏起来

 def getname(self):return self.__NAME #obj.name访问的是self.__NAME(这也是真实值的存放位置)

 def setname(self,value):if not isinstance(value,str): #在设定值之前进行类型检查 raise TypeError('%s must be str' %value)self.__NAME=value #通过类型检查后,将值value存放到真实的位置self.__NAME

 def delname(self):raise TypeError('Can not delete')

 name=property(getname,setname,delname) #不如装饰器的方式清晰

s = Foo(5)s.setname('6')s.delname()print(s.name)
 

转载于:https://www.cnblogs.com/yuexijun/p/10254544.html

面向对象网络编程基础 property的使用相关推荐

  1. 第三模块:面向对象网络编程基础 第1章 面向对象

    我的失败与梦想(一) 我的失败与梦想之为何创办路飞学城 01-编程范式 02-面向过程编程 03-面向对象编程介绍 04-定义类与实例化出对象 05-如何使用类 06-如何使用对象 07-属性查找与绑 ...

  2. 第三模块:面向对象网络编程基础-第1章 面向对象

    系列文章目录 面向对象编程设计与开发 文章目录 系列文章目录 前言 一.面向过程编程 二.面向对象编程 1.面向对象编程介绍 2.定义类与实例化出对象 3.如何使用类 4.如何使用对象 5.属性查找与 ...

  3. java程序设计之网络编程基础教程_Java程序设计之网络编程基础教程

    基本信息 书名:Java程序设计之网络编程基础教程(21世纪高等学校计算机基础实用规划教材) :43.50元 作者:李芝兴 主编 出版社:清华大学出版社 出版日期:2012-12-1 ISBN:978 ...

  4. 计算机网络(二) | 网络编程基础、Socket套接字、UDP和TCP套接字编程

    目录 一.网络编程基础 1.1 为什么需要网络编程 1.2 什么是网络编程 1.3 网络编程中的基本概念 二.Socket套接字 2.1 概念 2.2 分类 2.3 Java数据报套接字通信模型 2. ...

  5. python网络编程基础(线程与进程、并行与并发、同步与异步、阻塞与非阻塞、CPU密集型与IO密集型)...

    python网络编程基础(线程与进程.并行与并发.同步与异步.阻塞与非阻塞.CPU密集型与IO密集型) 目录 线程与进程并行与并发同步与异步阻塞与非阻塞CPU密集型与IO密集型 线程与进程 进程 前言 ...

  6. 《爬虫与网络编程基础》学习

    <爬虫与网络编程基础>学习 任务1:计算机网络基础 Step1-2 Step 3:关于XML格式的学习 XML文件格式 XML文件的常见操作 1.构建xml格式文件 2. 保存XML文件 ...

  7. 网络编程基础之C/S架构和TCP/IP协议

    一.何谓C/S架构 C指的是client(客户端软件),S指的是Server(服务端软件),既然我们的的标题是网络编程基础, 那我们就一起来学习怎样写一个C/S架构的软件,实现服务端与客户端软件基于网 ...

  8. python网络编程证书_《Python网络编程基础》笔记

    python网络编程基础 ================== Author: lujun9972 Date: 2013-03-08 22:29:20 CST Table of Contents == ...

  9. 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等

    文章目录 网络编程概述 网络通信要素 要素一IP和端口号 要素二网络协议 TCP网络编程 UDP网络编程 URL网络编程 Java网络编程基础 网络编程概述 Java是Internet上的语言,它从语 ...

最新文章

  1. ClickHouse系列教程七:centos下源码编译安装及报错解决
  2. NYOJ 257 中缀表达式表示成后缀表达式
  3. Macosx 安装 ionic 成功教程
  4. Charm Bracelet(POJ-3624)
  5. Tensorflow MNIST 手写识别
  6. [Be a Coding Plasterer] Components 1:get Basic Things
  7. Android开发中gitignore文件模板添加
  8. springboot(五) 加载配置文件优先级顺序
  9. vue mqtt测试工具使用(一)
  10. html调色板快捷键,在线网页调色板
  11. DirectX显示流程学习小结
  12. jzoj6366. 【NOIP2019模拟2019.9.25】化学(chem)
  13. 如何获取filecoin_分析:如何捕获Filecoin的价值?
  14. 2013年12月福建省广播电台网络影响力排名
  15. Android壁纸之静态壁纸
  16. 第三届中医药文化传承与技能发展大会召开助推中医药文化传承创新
  17. 计算机应用基础蓝色方框在哪,word段落设置3磅蓝色单线边框并加底纹怎...
  18. XXXXXXXXXXX学校“专家问诊课”活动方案
  19. 【MCAL_CANDriver】-1.2-Can Mailbox邮箱,Hardware Object,HOH,HRH,HTH之间的关系
  20. BuKu web18 秋名山车神

热门文章

  1. hdu 4676 Sum Of Gcd 莫队+phi反演
  2. 网页制作中绝对路径和相对路径的区别
  3. 张洋:浅析PageRank算法
  4. 期望最大化(EM)算法
  5. Linux 4.0 里,你可能再也不需要重启你的操作系统。
  6. 微软亚洲研究院开源分布式机器学习工具包
  7. HLS协议及java切片相关
  8. DDoS高防(国际)子产品发布,替代原本在DDoS高防IP中的海外线路。
  9. vue 中eslint 格式报错
  10. Flow - JS静态类型检查工具