python工作流程_讨论 - 廖雪峰的官方网站
例:
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工作流程_讨论 - 廖雪峰的官方网站相关推荐
- python 惰性序列_讨论 - 廖雪峰的官方网站
@廖雪峰 首先你要理解埃氏筛法的原理,其实是很简单的. 然后用惰性序列实现埃氏筛法时,只能想象抽象过程,不能推导每一步计算机是怎么算的,就像神经网络模拟的人工智能算法,连设计者也无法理解计算机执行的步 ...
- python怎么理解_讨论 - 廖雪峰的官方网站
我的电脑是win7x64的系统 安装的是Python3.4.3 这是hello.py模块 !/usr/bin/env python3 -- coding: utf-8 -- 'just a test' ...
- python3讨论交流地_讨论 - 廖雪峰的官方网站
每个字都是经验所得,都是站在一个零基础的人的角度写的,纯手打+网上优秀资源整合,希望大家能每个字都认真看. 接下来文章会侧重在以下几方面 1.零基础如何进行人工智能的自学(以找工作为目的),包括路径规 ...
- python的本质,讨论 - 廖雪峰的官方网站
关于 yield: yield一词的意思有 n.产出,产量:v.让步,提供. 所以当我们定义一个生成器函数时(带yield关键字的函数): def Iter(): for i in range(10) ...
- python 廖雪峰_实战 - 廖雪峰的官方网站
看完了教程,是不是有这么一种感觉:看的时候觉得很简单,照着教程敲代码也没啥大问题. 于是准备开始独立写代码,就发现不知道从哪开始下手了. 这种情况是完全正常的.好比学写作文,学的时候觉得简单,写的时候 ...
- python提交事务_事务 - 廖雪峰的官方网站
在执行SQL语句的时候,某些业务要求,一系列操作必须全部执行,而不能仅执行一部分.例如,一个转账操作: -- 从id=1的账户给id=2的账户转账100元 -- 第一步:将id=1的A账户余额减去10 ...
- python列表切片口诀-切片 - 廖雪峰的官方网站
取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack' ...
- python基础7 (来自廖雪峰的官方网站)
高级特性 迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来 ...
- python基础6(来自廖雪峰的官方网站)
高级特性 切片 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>> L = ['Michael', 'Sarah', 'Tracy', 'Bob' ...
最新文章
- 【从零开始的ROS四轴机械臂控制】(二) - ROS与Gazebo连接,Gazebo仿真及urdf文件修改
- android游戏开发框架libgdx的使用(六)--演员和演出
- python控制结构(二)_Python学习手册之控制结构(二)
- 装上后这 14 个插件后,PyCharm 能飞起
- CentOS 6.x搭建Open***实现双IDC互联
- flask执行python脚本_如何在flask后端运行python脚本?
- MongoDB 新功能介绍-Change Streams
- python的平方运算符_python入门之与用户交互、运算符
- 自学python好找工作么-学Python可靠吗?好找工作吗?
- python 点分十进制IP地址转16进制字符串
- 做完一个网站重构项目的总结以及感想!
- Java 编程技术中汉字问题的分析及解决
- 微型计算机原理中的mov,微机原理(判断题)(指令正误)
- 一看就会!一篇全搞定!权限处理专家--Shiro保姆式教学,超详细!
- C#基础面试题(附答案)
- matlab开关电源仿真软件,做开关电源,一般用什么仿真软件?
- Windows 无法连接到打印机.打印后台程序服务没有运行
- 表单实现登录注册功能
- 零基础学Python 掌握这些让你一个月上手做项目
- 什么是云HIS?为什么HIS系统要上云?云HIS系统有哪些特点?
热门文章
- Spring Cloud 服务注册中心Eureka
- 【ubuntu】更换下载源
- 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架 解决方案...
- oracle/PL/SQL编程(4)
- POJ 1459 Power Network
- Promise编程基础
- 微信公众平台获取用户地理位置之开发文档详解
- 不能算是读后感的读后感
- 收藏的一个关于C# ToString的方法集合
- linux系统信息查看命令