python方法调用名字不一样_python属性访问和方法调用是不是不一样
考察下面这个简单的例子:
class Person(object):
def __init__(self):
self._name = None
def get_name(self): # 这是方法
if not self._name:
raise RuntimeError('no name')
return self._name
def set_name(self, name): # 这还是方法
if not name:
raise ValueError('name should not be empty')
self._name = name
# 定义了名为 name 的属性
name = property(get_name, set_name)
我们可以使用方法或属性来操作:
>>> p = Person()
>>> p.name
...
RuntimeError: no name
可以看到用属性的方式访问,还是调用了 get_name() 方法,这和:
>>> p.get_name()
...
RuntimeError: no name
是一样的。同样,我们使用方法和属性两种方式操作:
>>> p.name = 'mike'
>>> p.get_name()
'mike'
>>> p.name
'mike'
>>> p.name = 'peter'
>>> p.name
'peter'
>>> p.name = ''
...
ValueError: name should not be empt
可以看到,实际上为 p.name 赋值时,调用了 set_name() 方法。
python方法调用名字不一样_python属性访问和方法调用是不是不一样相关推荐
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- python中的方法和函数的区别_python中函数与方法的区别?
Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...
- C++和Java的属性访问和方法调用 效率比较
属性访问----C++快于Java JVM访问对象属性时(字节码OP_IGET_/OP_SGET_),会先通过属性名字字符串去查ClassObject元数据中属性的偏移(通过属性名字符串找到Class ...
- python函数和类的区别_Python中类中的方法还有区别?
上一篇,我们讲到Python类中的属性是有区别的,爱思考的小伙伴们可能就会问了,Python中的方法是不是也有区别呢?是的,而且Python中的方法区别更大,让我们来看看吧~ Python类中的三种方 ...
- Python学习笔记(八)—— 私有属性、私有方法、伪私有
在Python中,以下划线开头的变量名和方法名有特殊的含义,尤其在是在类的定义中.用下划线作为变量名和方法名的前缀和后缀来表示类的特殊成员. _xxx:这样的对象叫做保护成员,只有类对象和子类对象能访 ...
- python函数的使用方法_百度资讯搜索_python函数的使用方法
金生水起程序猿 2020年11月22日 11:23函数语法格式及调用参数:默认值.元组和字典可变参数的使用全局变量和局部变量作用域,局部变量如何升级为全局变量函数是可重复使用的,实现单一功能的代码块. ...
- python通过什么对象连接数据库步骤_Python连接MySQL数据库方法介绍(超详细!手把手项目案例操作)...
本文涉及到的开发环境:操作系统 Windows 10 数据库 MySQL 8.0 Python 3.7.2 pip 19.0.3 两种方法进行数据库的连接分别是PyMySQL和mysql.connec ...
- python和c语言相通吗_python和C语言互相调用的几种方式
1 2 3 4 5 6 7 8 9 版权申明:本文为博主窗户(Colin Cai)原创,欢迎转帖.如要转贴,必须注明原文网址 http://www.cnblogs.com/Colin-Cai/p/75 ...
- 关于学习Python的一点学习总结(46->属性访问)
86.属性访问 1.__getattr__(self,name):定义当用户试图获取一个不存在的属性时的行为 2.__getattribute__(self,name):定义当该类的属性被访问时的行为 ...
最新文章
- 腾讯 AI Lab 开源业内最大规模多标签图像数据集
- 用C#制作新闻阅读器(电脑报2005年3月14日 第10期)
- Chrome开发者工具详解(2)-Network面板
- Python数据结构与算法—队列
- 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)
- 对象池commons-pool
- 关于颜色值透明度的设置
- php上传文件程序,php 文件上传程序(二款简单文件上传程序)_PHP教程
- 百度SEO站群自采集壁纸源码小韩美化版
- python中连续两个小于号_Python语言描述最大连续子序列和
- src refspec main does not match any
- SPI Nor Flash在Linux下调试
- 【论文】 各高校的毕业论文的Latex模板链接
- [神经网络]计算量GFLOPS和参数量#Params以及感受野计算
- 双向TVS的符号及几个参数问题?
- 最新王通《搜索排名引爆点》课值得学习吗
- 一二线城市知名 IT 互联网公司名单公布!
- Spring Boot入门教程(三十七):支付宝集成-手机网站支付
- 微信小程序开发日记1
- AI视频智能平台EasyCVR设备录像出现无法播放现象的问题修复