例:

class test:

def __init__(self):

self.__name=None

@myproperty

def name(self):

return self.__name

@name.setter

def name(self,value):

if value < 0:

print('no')

return

self.__name=value

注释:类myproperty中各参数指什么

方法函数中传入的第一个参数self  是 name(也就是@myproperty  下面的函数name)

@myproperty         定义完name函数之后,会自动运行property中的构造函数__init__

@name.setter        运行name.setter函数,参数:self=name #第一个name   setx=test.name                   (同理:getx=test.name  #@name.getter  下面的那个name函数)

setter函数中的: return type(self)(self.getx, setx, self.delx, self.__doc__)                              相当于:   myproperty(text.name)    #此时,除了setx外,其余的都仍是None   (因为我在例子中没有定义其余的)

setter ,getter  这两个函数的作用是:定义类对象中的函数,使原函数名具有新的作用,

当在交互模式中出现:

类名.name   ——>    运行name.__get__函数,实参instance=类对象, owner=类    #print(owner):                           也相当于类对象的类型

返回值  self.getx(instance)     相当于:  test.name(t)                #注意,这里虽然和下文中都是test.name, 只是因为方便大家理解,这两个name并不是同一个,计算机看到的也是getx和setx,会自动区分

类名.name=xxx   ——>   运行name.__set__函数,value=xxx

返回值  return self.setx(instance,value)    相当于:   test.name(t, xxx)

__get__,  __set__   这两个函数的作用是:在返回值中调用原函数

至于为什么python看到   test.name=xxx   就会调用__get__   我想不通,有知道的希望告诉我一下

python工作流程_讨论 - 廖雪峰的官方网站相关推荐

  1. python 惰性序列_讨论 - 廖雪峰的官方网站

    @廖雪峰 首先你要理解埃氏筛法的原理,其实是很简单的. 然后用惰性序列实现埃氏筛法时,只能想象抽象过程,不能推导每一步计算机是怎么算的,就像神经网络模拟的人工智能算法,连设计者也无法理解计算机执行的步 ...

  2. python怎么理解_讨论 - 廖雪峰的官方网站

    我的电脑是win7x64的系统 安装的是Python3.4.3 这是hello.py模块 !/usr/bin/env python3 -- coding: utf-8 -- 'just a test' ...

  3. python3讨论交流地_讨论 - 廖雪峰的官方网站

    每个字都是经验所得,都是站在一个零基础的人的角度写的,纯手打+网上优秀资源整合,希望大家能每个字都认真看. 接下来文章会侧重在以下几方面 1.零基础如何进行人工智能的自学(以找工作为目的),包括路径规 ...

  4. python的本质,讨论 - 廖雪峰的官方网站

    关于 yield: yield一词的意思有 n.产出,产量:v.让步,提供. 所以当我们定义一个生成器函数时(带yield关键字的函数): def Iter(): for i in range(10) ...

  5. python 廖雪峰_实战 - 廖雪峰的官方网站

    看完了教程,是不是有这么一种感觉:看的时候觉得很简单,照着教程敲代码也没啥大问题. 于是准备开始独立写代码,就发现不知道从哪开始下手了. 这种情况是完全正常的.好比学写作文,学的时候觉得简单,写的时候 ...

  6. python提交事务_事务 - 廖雪峰的官方网站

    在执行SQL语句的时候,某些业务要求,一系列操作必须全部执行,而不能仅执行一部分.例如,一个转账操作: -- 从id=1的账户给id=2的账户转账100元 -- 第一步:将id=1的A账户余额减去10 ...

  7. python列表切片口诀-切片 - 廖雪峰的官方网站

    取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack' ...

  8. python基础7 (来自廖雪峰的官方网站)

    高级特性 迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来 ...

  9. python基础6(来自廖雪峰的官方网站)

    高级特性 切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob' ...

最新文章

  1. 【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改
  2. android游戏开发框架libgdx的使用(六)--演员和演出
  3. python控制结构(二)_Python学习手册之控制结构(二)
  4. 装上后这 14 个插件后,PyCharm 能飞起
  5. CentOS 6.x搭建Open***实现双IDC互联
  6. flask执行python脚本_如何在flask后端运行python脚本?
  7. MongoDB 新功能介绍-Change Streams
  8. python的平方运算符_python入门之与用户交互、运算符
  9. 自学python好找工作么-学Python可靠吗?好找工作吗?
  10. python 点分十进制IP地址转16进制字符串
  11. 做完一个网站重构项目的总结以及感想!
  12. Java 编程技术中汉字问题的分析及解决
  13. 微型计算机原理中的mov,微机原理(判断题)(指令正误)
  14. 一看就会!一篇全搞定!权限处理专家--Shiro保姆式教学,超详细!
  15. C#基础面试题(附答案)
  16. matlab开关电源仿真软件,做开关电源,一般用什么仿真软件?
  17. Windows 无法连接到打印机.打印后台程序服务没有运行
  18. 表单实现登录注册功能
  19. 零基础学Python 掌握这些让你一个月上手做项目
  20. 什么是云HIS?为什么HIS系统要上云?云HIS系统有哪些特点?

热门文章

  1. Spring Cloud 服务注册中心Eureka
  2. 【ubuntu】更换下载源
  3. 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架 解决方案...
  4. oracle/PL/SQL编程(4)
  5. POJ 1459 Power Network
  6. Promise编程基础
  7. 微信公众平台获取用户地理位置之开发文档详解
  8. 不能算是读后感的读后感
  9. 收藏的一个关于C# ToString的方法集合
  10. linux系统信息查看命令