Python property使用简介
property使用简介
by:授客 QQ:1033553122
功能简介
1) 把类方法变成只读属性
2) setter和getter的另一种实现
代码演示1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'shouke'
class User(object):
def __init__(self, username, password):
self._username = username
self._password = password
@property
def username(self):
return self._username
@username.setter
def username(self, username):
self._username = username
@property
def password(self):
return self._password
@password.setter
def password(self, password):
self._password = password
if __name__ == '__main__':
boy = User('shouke', 'shouke2014')
print('对象用户名:', boy.username)
boy.username = 'shou ke'
print('修改后的用户名:', boy.username)
print('通过修改属性值来修改密码')
boy._password = 2014
print('修改后的用户密码:', boy._password)
boy.password = 'shouke2016'
print('通过方法属性来修改密码,修改后的用户密码:', boy._password)
运行结果:
对象用户名: shouke
修改后的用户名: shou ke
通过修改属性值来修改密码
修改后的用户密码: 2014
通过方法属性来修改密码,修改后的用户密码: shouke2016
注意:
1、@property和@function.setter需要成对使用,如下
@property
def function_name
@function.setter
def function_name(self, attribute)
2、如果变量属性值和方法属性值相同,那么以下情况下是无法完成初始化函数 __init__ 中的赋值操作的,即无法初始化对象
代码演示2
#!/usr/bin/env python
#
-*- coding:utf-8 -*-
__author__
=
'shouke'
class
Tester(object):
def
__init__(self,
name, sex, title):
self.name
= name
self.sex
= sex
self.title
= title
@property
def
name(self):
return
self.name
@property
def
sex(self):
return
self.sex
@property
def
title(self):
return
self.title
@title.setter
def
title(self,
title):
self.title
=
title
if
__name__ ==
'__main__':
tester
= Tester('shouke',
'M',
'Tester')
print(tester.title)
"D:\Program
Files\python33\python.exe" E:/Projects/untitled/py1.py
Traceback (most recent call last):
File
"E:/Projects/untitled/py1.py", line 30, in
tester
= Tester('shouke', 'M', 'Tester')
File
"E:/Projects/untitled/py1.py", line 8, in __init__
self.name
= name
AttributeError: can't set attribute
Python property使用简介的更多相关文章
- python property详解
Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情.在这篇文章中,我们将看到如何能做以下几点: 将类方法转换为只读属性 重新实现一个属性的setter和getter ...
- python property
python property 在2.6版本中,添加了一种新的类成员函数的访问方式--property. 原型 class property([fget[, fset[, fdel[, doc]]]] ...
- Python生态环境简介[转]
Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy 原译: Python生态环境简介 当 ...
- python property装饰器
直接上代码: #!/usr/bin/python #encoding=utf-8 """ @property 可以将python定义的函数“当做”属性访问,从而提供更加友 ...
- Python @property 详解
本文讲解了 Python 的 property 特性,即一种符合 Python 哲学地设置 getter 和 setter 的方式. Python 有一个概念叫做 property,它能让你在 Pyt ...
- (转)python生态环境简介
Python生态环境简介 作者: Mir Nazim 原文: Python Ecosystem - An Introduction 译者: dccrazyboy 原译: Python生态环境简介 当 ...
- Python property() 函数
Python property() 函数 Python 内置函数 描述 property() 函数的作用是在新式类中返回属性值. 语法 以下是 property() 方法的语法: class pro ...
- Python 3 mysql 简介安装
Python 3 mysql 简介安装 一.数据库是什么 1. 什么是数据库(DataBase,简称DB) 数据库(database,DB)是指长期存储在计算机内的,有组织,可共享的数据的集合.数据 ...
- python property用法
参考 http://openhome.cc/Gossip/Python/Property.html http://pyiner.com/2014/03/09/Python-property.html ...
随机推荐
- .net core dump分析
服务器上如果出现cpu内存饱满,找不到原因,那么dump文件分析必不可少. 起初是想在linux下调试.net core 的dump,但是环境一直无法安装 搞了许久没搞出来,其次文章太少了,googl ...
- dedecms中arclist标签做分页以及分页点击模块样式错乱问题
in 使用织梦建站,通常会调用到一个文章列表,dedecms官网list标签没有提供typeid的属性,首页或多列表部分情况下使用分页并不方便,这就需要用arclist标签实现一个分页功能:以下还是展 ...
- python(leetcode)-14最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- solr7.3.1在CentOS7上的安装
1 solr的下载 从Solr官方网站(http://archive.apache.org/dist/lucene/solr/7.3.1/ )下载Solr最新版本, 根据Solr的运行环境,Linux ...
- Jenkins可用环境变量以及使用方法
Jenkins可用环境变量以及使用方法
- TensorflowSharp安装和使用入门
Tensorflow是一个人工智能框架.TensorflowSharp是对Tensorflow C语言版接口的封装,便于C#开发人员在项目中使用Tensorflow. 一.使用方法 Tensorflo ...
- leetcode — text-justification
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * * Source : https:/ ...
- 五分钟轻松了解Hbase面向列的存储
说明:从严格的列式存储的定义来看,Hbase并不属于列式存储,有人称它为面向列的存储,请各位看官注意这一点. 行式存储 传统的数据库是关系型的,且是按行来存储的.如下图: 其中只有张三把一行数据填满了 ...
- 解读经典《C#高级编程》第七版 Page50-68.核心C#.Chapter2
前言 本篇讲述Main方法,控制台,注释,预处理指令,编程规范等.这些概念比较琐碎,为避免长篇大论,主要以列举要点的方式来说明. 01 Main方法 Main方法并不是所有应用类型的入口方法,它只是控 ...
- OJ:访问 const 成员函数问题
Description 补足程序使得其输出结果是: 40 #include <iostream> #include <string> using namespace std; ...