python学习之路--属性

本篇文章主要是分享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)

时间: 2024-09-30 19:57:12

python学习之路--属性的相关文章

Python学习之路-Day1-Python基础

Python学习之路第一天 学习内容: 1.Python简介 2.安装 3.第一个Python程序 4.变量 5.字符编码 6.用户输入 7.表达式if..else语句 8.表达式for语句 9.break和continue 10.while循环 11.字符串格式化 1.python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承. 最新的TIOB

Python 学习之路(二)

Python 学习之路(二) 以下所用的是Python 3.6 一.条件语句 简单判断 1 if 判断条件: 2 执行语句-- 3 else: 4 执行语句-- 复杂判断 1 if 判断条件1: 2 执行语句1-- 3 elif 判断条件2: 4 执行语句2-- 5 elif 判断条件3: 6 执行语句3-- 7 else: 8 执行语句4-- 二.循环语句 2.1 while语句 和其他语言一样,不同的是多了else语句.在 python 中,while - else 在循环条件为 false

Python学习之路—2018/6/19

Python学习之路-2018/6/19 1.注册自定义转化器 converts.py class Birthday: regex = '[0-9]{8}' # 匹配规则 def to_python(self, value): # 匹配的字符串返回具体的变量值,传递到对应的视图函数中 return int(value) def to_url(self,value): # 反向解析 return "%04d" % value urls.py from django.urls import

Python学习之路—2018/6/29

Python学习之路-2018/6/29 1.跨表查询 跨表查询: 基于对象查询 基于双下划线查询 聚合和分组查询 F与Q查询 F查询 过滤器只能讲字段值与常量进行比较,如果需要用到与字段值进行比较则需要用到F查询,F查询还支持与常量之间的加减乘除的运算.数据: # 查询评论数大于阅读数的书籍 >>> Book.objects.filter(comment_count__gt=F("read_count")) <QuerySet [<Book: 斗破苍穹&

Python学习之路—2018/7/11

Python学习之路-2018/7/10 3.功能开发 3.1 登录验证 login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <t

Python学习之路

Python学习之路 目录 Python学习之路[第一篇]:流程控制,用户交互,语法要求,变量,字符,注释,模块导入的使用 Python学习之路[第二篇]:文件,字符串,列表,元组,字典,集合的使用 更新中...

Python学习之路-装饰器&生成器&正则表达式

装饰器 通俗的讲,装饰器就是在不改变源代码基础上,给源代码增加新功能. 不改变函数的源代码.调用方式.返回值等,给函数增加新功能. 经典案例:登录装饰器, def login_decorator(func):     def inner():         if USER_TEMP["status"] == False:             print("\033[31;1m用户未登录,请先登录\033[0m")             login_atm()

Python学习之路【第一篇】-Python简介和基础入门

1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是一种开发语言,而且已经进阶到主流的二十多种开发语言的top 5(数据源自最新的TIOBE排行榜). 来头不小啊!二十多种主流的开发语言,我该从哪一个开始呢?人生苦短,let‘s python! 1.2 Python的由来和发展趋势 Python的前世源自鼻祖“龟叔”.1989年,吉多·范罗苏姆(Gu

Python学习之路——强力推荐的Python学习资料

资料一:程序媛想事儿(Alexia)总结 Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用.它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务. Python上手虽然容易,但与其它任何语言一样要学好Python并非一日之功.我的Pyth