python学习之路--属性,,本篇文章主要是分享p
python学习之路--属性,,本篇文章主要是分享p
本篇文章主要是分享pyton里面的属性的设置和获取使用:Property属性的内置函数:
1.__getattr__(self, name)
-定义当用户试图获取一个不存在的属性时的行为
2.__getattribute__(self, name)
-定义当该类的属性被访问时的行为
3.__setattr__(self, name, value)
-定义当一个属性被设置时的行为
4.__delattr__(self, name)
-定义当一个属性被删除时的行为
一个对象的属性在对象里面其实是由一个字典表来管理的,通过object.__dict__可以查看,返回的是一个字典表,显示的是每一个属性名的字符串和属性相对应的值;
以上内置函数调用顺序是:
1.设置当前的属性,会调用__setattr__(self, name, value)方法来设置当前的属性,如果属性存在,直接设置属性的值,如果属性不存在,则会增加一个该属性
2.获取属性的值,会调用__getattribute__(self, name)方法来获取,调用后如果属性存在,则直接获取属性的值,如果属性不存在,则会调用__getattr__(self, name)方法来获取
3.删除属性调用__delattr__(self, name)方法来删除属性
可以运行以下例子不难看出对象的属性的设置和调用:
# -*- coding: utf-8 -*-
"""
@author: zzj
"""
class PropertyTest:
def __init__(self, size = 10):
self.size = size
def __getattribute__(self, name):
print("正在访问该类的属性")
return super().__getattribute__(name)
def __getattr__(self, name):
print("该属性不存在")
def __setattr__(self, name, value):
print("设置当前属性")
return super().__setattr__(name, value)
def __delattr(self, name):
print("删除当前属性")
super().__delattr__(name)
def GetSize(self):
return self.size
def SetSize(self, value):
self.size = value
def DelSize(self):
del self.size
x = property(GetSize, SetSize, DelSize)
C = PropertyTest()
print(C.size)
C.x = 1
print(C.size)
print(C.x)
del C.x
print(C.size)
python学习之路--属性
相关内容
- Python连载60-Tkinter布局、按钮以及属性详解,,一、Tkin
- Python 技能树-Index,,命令行工具ipyth
- 小哈学python----一行代码输出特定字符"Love&q
- python 断言大全,,参考链接:https
- python-高阶函数(map,reduce,filter),,1、map函数arr
- 【Python】输出12个星座,,原理:利用Unico
- 《父与子的编程之旅 python【第二版】》高清中文版PD
- python的encode()和decode()函数,,decode()函数
- python属性,,<1>属性包装:将方
- Python锛歮ain鍑芥暟,,鏍囩锛?a hre
评论关闭