类的常用函数


issubclass()

  1. 检测一个类是否是另外一个类的子类
  2. 格式1issubclass(被检测类,父类)
  3. 返回值:布尔值
  4. 格式1issubclass(被检测类,(父类1,父类2,父类3...))
  5. 返回值:布尔值
  6. 注意:只要有一个类是当前被检测类的父类,那么最终结果就是True

isinstance()

  1. 检测一个对象是否是某个类的对象
  2. 格式1isinstance(对象,类)
  3. 返回值:布尔值
  4. 格式2isinstance(对象,(类1,类2,类3...))
  5. 返回值:布尔值
  6. 注意:只要一个类是当前对象的类,那么最终结果就是True

hasattr()

  1. 检测对象/类是否具有某个成员
  2. 格式:hasattr(对象/类,'成员名'
  3. 返回值:布尔值

getattr()

  1. 获取对象/类中的成员值
  2. 格式:getattr(对象,'成员名'[,成员不存在时的默认值])
  3. 返回值:成员的值

setattr()

  1. 设置或者添加对象/类中的成员
  2. 格式:setattr(对象,'成员名',值)
  3. 返回值:None

delattr()

  1. 删除对象/类中的成员
  2. 格式: delattr(对象,成员)
  3. 返回值:None

dir()

  1. 获取对象的成员名称列表
  2. 格式:dir(对象)
  3. 返回值:列表

property()

  1. 用于设置成员属性的修饰符
  2. 格式:成员属性 = property(获取的方法,设置的方法,删除的方法)

描述符


python中的描述符是用于描述对象中的属性。主要作用就是对属性操作提供限制,验证,管理等相关权限的操作。

描述符主要有三种操作需要设置:

  1. get 获取属性的操作
  2. set 设置属性的操作
  3. delete 删除属性的操作

描述符方法1


  1. #描述符类
  2. class Description:
  3. #成员属性
  4. #name = ''
  5. #初始化方法
  6. def __init__(self):
  7. #为当前类/对象添加一个成员属性(当前类)来接收需要描述的成员属性(要描述的类)此处还没有接收(占位)
  8. self.name = None
  9. #get获取属性值的方法
  10. def __get__(self,obj,cls):# self 用于接收当前描述符类的对象 obj 接收用于管理的成员的对象 cls 用于接收管理成员的类
  11. print('获取方法被触发')
  12. self.name = str(self.name)
  13. return self.name[:4]
  14. #set设置属性值的方法
  15. def __set__(self,obj,val): #self 用于接收当前描述符类的对象 obj 接收用于管理的成员的对象 val 设置的值
  16. print('设置方法被触发')
  17. #print(self,obj,val)
  18. #在此处可以添加限制和判断(密码奇数时*2)
  19. if val %2 == 1:
  20. val *= 2
  21. #完成了(email)对象的属性值的设置
  22. self.name = val
  23. #delete删除属性值的方法
  24. def __delete__(self,obj): #self当前描述符类的对象 obj 接收用于管理的成员的对象
  25. #用户代为删除操作
  26. del self.name
  27. #声明一个邮箱的类
  28. class Email
  29. #属性
  30. #用户名
  31. account = 'conghao@zhiling.com'
  32. #密码(为密码设置了描述符 的对象) 这一步相当于吧password的所有传入了Description的对象当中
  33. password = Description()

描述符方法2:


  1. #邮箱类
  2. class Email:
  3. #成员属性
  4. #为username添加描述符
  5. #username = ''
  6. #设置邮箱账号最大的长度
  7. maxlength = 6
  8. #为描述符添加一个临时变量(在描述符中代替username进行操作)
  9. tmpusername = None
  10. password = ''
  11. #成员方法
  12. #为username的描述符进行设置(添加方法)
  13. #获取username的描述符方法
  14. def getusername(self):
  15. print('获取操作被触发')
  16. #返回值之前进行值的修饰,两边添加星星
  17. if self.tmpusername != None:
  18. self.tmpusername = '★' + self.tmpusername + '★'
  19. #设置获取username的时候的值
  20. return self.tmpusername
  21. #设置username的描述符方法
  22. def setusername(self,val):
  23. print('设置操作被触发')
  24. #限制,根据Email类的最大账号长度对用户名进行截取之后在设置
  25. #检测val是否是字符串类型
  26. if isinstance(val,str):
  27. val = val[0:self.maxlength]
  28. self.tmpusername = val
  29. #删除username的描述符方法
  30. def delusername(self):
  31. print('删除操作被触发')
  32. #删除操作
  33. del self.tmpusername
  34. #为username设置描述符
  35. username = property(getusername,setusername,delusername)

3.属性修饰符


  1. #邮箱类
  2. class Email:
  3. #用户名
  4. username = ''
  5. #密码
  6. password = ''
  7. #使用描述符来操作昵称
  8. #昵称
  9. petname = '小乖乖'
  10. #为描述符设置临时变量
  11. __petname = None
  12. #成员方法(暂无)
  13. #描述符设置的三个部分 获取,设置和删除
  14. #处理petname获取操作
  15. @property
  16. def petname(self):
  17. print('获取操作被触发')
  18. return self.__petname
  19. #处理petname的设置操作
  20. @petname.setter
  21. def petname(self,val):
  22. print('设置操作被触发')
  23. #设置操作
  24. self.__petname = val
  25. #处理petname的删除操作
  26. @petname.deleter
  27. def petname(self):
  28. print('删除操作被触发')
  29. #删除操作
  30. del self.__petname

类的内置属性


__dict__

  1. 获取当前类/对象成员组成的字典

__doc__

  1. 获取当前类/对象的文档,和函数一样使用''' 定义即可

__name__

  1. 类.__name__是获取当前类名,如果直接写__name__则是获取模块的名称

__bases__

  1. 获取类的继承列表中所有父类组成的元组

python 类和对象下的更多相关文章

  1. [python]类与对象-下

    [实例对象]可以简称为[实例] 一.类与对象的关系 [类]是[对象]的模板. [类]就像工厂的模具,以它为模板,造出来的成千上万的产品,才是被我们消费.购买.使用,真正融入我们生活的东西.这些产品,在 ...

  2. Python 类和对象-下

    类的常用函数 #issubclass() 检测一个类是否是另外一个或者一组类中的子类 class Father: pass class Mother: pass class LaoWang: pass ...

  3. 一文讲全了Python 类和对象内容

    摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan  . Pytho ...

  4. python类与对象各个算数运算魔法方法总结

    1.python类与对象各个算术运算魔法方法总结: 2.各个魔法方法应用举例: 3.实例训练: (1)我们都知道在 Python 中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常 ...

  5. python 类和对象的属性

    python类和对象的属性分为类属性和对象属性两大类,类属性属于类,而对象属性属于对象. 1. 父类的对象属性会被子类的对象继承. 2. 父类的类属性会被子类继承,还是作为类属性,如果父类改变了类属性 ...

  6. python类、对象

    python类.对象 学习完本篇,你将会深入掌握 什么是类,对象 了解类和对象之间的关系 能独立创建一个People(人类),属性有姓名.性别.年龄.提供一个有参的构造方法,编写一个show方法,输出 ...

  7. python类与对象基本语法

    面向对象编程的2个非常重要的概念:类和对象. 对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念--类. 类就相当于制造飞机时的图纸,用它 ...

  8. python 类和对象

    类和对象 类 1.类的组成    数据和函数,二者是类的属性 2.两个作用: 实例化 属性引用  属性引用:类名.属性(增删改查)   实例化: 类名加括号就是实例化,会自动出发__init__的运行 ...

  9. Python类和对象

    目录 类与对象 其他方法 继承 经典类和新式类 派生 组合 接口.归一化设计与抽象类 继承实现的原理 子类中调用父类的方法 指名道姓 super()方法 多态与多态性 封装 单下划线开头 双下划线开头 ...

随机推荐

  1. anaconda安装教程、管理虚拟环境

    原文链接:https://blog.csdn.net/ITLearnHall/article/details/81708148 另可参看文章:https://www.cnblogs.com/jonin ...

  2. C# 字符串的拆分

    string str = "ABCD"; char[] strCharArr = str.ToCharArray(); //结果 //strCharArr[0]='A', //st ...

  3. HR面试总结

    求职面试HR最欣赏的自我介绍 2015-02-25 来源:www.cnrencai.com 浏览:391   明明很有能力的你,在面试中却不能发挥出色?来看看是不是自我介绍环节出了问题. 回答面试题目 ...

  4. k3 cloud移动审批提示实体类型BD_TaxRate中不存在名为AmountDigits属性

    原因是由于字段没有正确绑定币别,找到对应的字段并修改绑定币别

  5. 自定义的最简单的可回调的线程任务CallbackableFeatureTask(模仿google的ListenableFutureTask)

    1.使该Task继承Callable,Runable import java.util.concurrent.Callable; import java.util.function.Consumer; ...

  6. linux性能分析工具Swap

  7. ArrayList、LinkedList、Vector区别

    ArrayList.LinkedList.Vector均为可伸缩数组,即可以动态改变长度的数组. 比较ArrayList和Vector: 1. 共同点: ArrayList和Vector都是基于Obj ...

  8. jenkins持续集成(一): 在Linux下的安装与配置

    撸了今年阿里.网易和美团的面试,我有一个重要发现.......>>> 前提: 安装了JDK,并配置好环境变量:JAVA_HOME 安装了Maven,并配置好环境变量:MAVEN_HO ...

  9. phpstrom 安装

    环境: ubuntu18.4 一. 安装 1. 下载安装包.tar.gz 下载地址:https://www.jetbrains.com/phpstorm/download/#section=linux ...

  10. python 获取文件行数

    #如果要统计文件的行数,可以这样写: count = len(open(filepath, 'r').readlines()) #这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作. #可以利用 ...