Python property使用简介

简介: Python property使用简介

property使用简介


功能简介

1) 把类方法变成只读属性

2) settergetter的另一种实现

代码演示1

#!/usr/bin/env python

# -*- coding:utf-8 -*-

 

__author__ ='shouke'

 

classUser(object):

def__init__(self, username, password):

self._username =  username

self._password = password

 

 @property

 defusername(self):

 returnself._username

 

@username.setter

defusername(self, username):

self._username = username

 

@property

defpassword(self):

returnself._password

 

@password.setter

defpassword(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'

classTester(object):
   def__init__(self, name, sex, title):
       self.name = name
       self.sex = sex
       self.title = title

   @property
   defname(self):
       returnself.name

   @property
   defsex(self):
       return  self.sex

   @property
   deftitle(self):
       returnself.title

   @title.setter
   deftitle(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

 

 

目录
相关文章
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
181 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
5月前
|
Linux iOS开发 MacOS
【chat-gpt问答记录】python虚拟环境venv的简介及使用
【chat-gpt问答记录】python虚拟环境venv的简介及使用
62 2
|
1月前
|
程序员 PHP Python
Python3 简介
【10月更文挑战第8天】Python3 简介。
26 4
|
1月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
5月前
|
Python
|
2月前
|
数据采集 算法 数据处理
Python中的列表推导式:简介与应用
【9月更文挑战第14天】本文旨在介绍Python中一种强大且简洁的构造列表的方法——列表推导式。我们将从基础语法入手,通过实例演示其用法,并探讨在数据处理和算法优化中的应用价值。文章将不包含代码示例,而是专注于概念理解和应用场景的描述,以促进读者对列表推导式的深入认识。
64 3
|
2月前
|
JavaScript Java C语言
Python简介
Python简介。
20 4
|
4月前
|
数据采集 Java C语言
Python面向对象的高级动态可解释型脚本语言简介
Python是一种面向对象的高级动态可解释型脚本语言。
38 3
|
4月前
|
数据采集 Java C语言
Python:Python简介
Python是一种高级动态编程语言,以其简洁语法和丰富的库闻名。它免费开源,支持面向对象编程,自动内存管理,并可在多种平台运行。选择Python的原因包括易学性、移植性及解释性。Python广泛应用于爬虫、Web开发、科学计算等多个领域。学习路线包括基础语法、数据结构、函数、面向对象编程及特定领域的库学习。
53 1
Python:Python简介
|
4月前
|
开发工具 git Python
在python中的字面量简介以及调试和发布
【7月更文挑战第3天】本文介绍Python调试涉及统一str/unicode、pdb断点调试、依赖管理如`python3-devel`用于pycurl,发布流程含编译、删除源码、打包。常用内置魔法函数如`__iter__`、`__call__`。`chr()`和`ord()`处理Unicode与整数。字面量包括数字、浮点、复数和布尔值。
71 2