1. print( 坑的信息 )

  • 挖坑时间:2019/04/07
  • 明细
坑的编码 内容
Py023-1 对 issubclass,isinstance,hasattr,getattr,setattr,delattr 举例

2. 开始填坑

2.1 issubclass()

  • 官方文档
issubclass(cls, class_or_tuple, /)
Return whether 'cls' is a derived from another class or is the same class.
  • 大致意思

    • 判断 cls 是否派生自 class_or_tuple,并返回相应的值
  • 举例
class A(object):
pass class B(A):
pass class C(object):
pass print("B 是 A 的子类吗:", issubclass(B, A))
print("C 是 A 的子类吗:", issubclass(C, A))
print("B 是 object 的子类吗:", issubclass(B, object))

>>>

B 是 A 的子类吗: True

C 是 A 的子类吗: False

B 是 object 的子类吗: True

2.2 isinstance()

  • 官方文档
isinstance(obj, class_or_tuple, /)
Return whether an object is an instance of a class or of a subclass thereof.
  • 大致意思

    • 判断 obj 是否是 class_or_tuple 的实例,并返回相应的值
  • 举例
class A(object):
pass class B(object):
pass a = A()
b = B() print("a 是 A 的实例吗:", isinstance(a, A))
print("A 是 A 的实例吗:", isinstance(A, A))
print("b 是 A 的实例吗:", isinstance(b, A))

>>>

a 是 A 的实例吗: True

A 是 A 的实例吗: False

b 是 A 的实例吗: False

2.3 hasattr()

  • 官方文档
hasattr(obj, name, /)
Return whether the object has an attribute with the given name.
  • 大致意思

    • 判断 obj 是否具有属性 name,并返回相应的值
  • 举例
class A():
name = "York" a = A() print("a 有属性 name 吗:", hasattr(a, "name" ))
print("a 有属性 age 吗:", hasattr(a, "age" ))

>>>

a 有属性 name 吗: True

a 有属性 age 吗: False

2.4 getattr()

  • 官方文档
getattr(...)
getattr(object, name[, default]) -> value Get a named attribute from an object;
getattr(x, 'y') is equivalent to x.y.
When a default argument is given, it is returned when the attribute doesn't exist;
without it, an exception is raised in that case.
  • 大致意思

    • getattr(x, 'y') 相当于 x.y
    • 若 x 有 y 属性,则返回 x 的属性 y
    • 若 x 无 y 属性,则引发异常
  • 举例
class A():
name = "York" a = A() print("a.name: ", getattr(a, "name" ))
print("a.age: ", getattr(a, "age" ))

>>>

a.name:  York
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-6ee17f32b693> in <module>()
5
6 print("a.name: ", getattr(a, "name" ))
----> 7 print("a.age: ", getattr(a, "age" )) AttributeError: 'A' object has no attribute 'age'

2.5 setattr()

  • 官方文档
setattr(obj, name, value, /)
Sets the named attribute on the given object to the specified value. setattr(x, 'y', v) is equivalent to ``x.y = v''
  • 大致意思

    • 给类属性赋值
    • setattr(x, 'y', v) 相当于 x.y = v
  • 举例
class A():
name = "York" a = A() print("更改前的 a.name: ", a.name)
setattr(a, "name", "Fish")
print("更改前后 a.name: ", a.name)

>>>

更改前的 a.name: York

更改前后 a.name: Fish

2.6 delattr()

  • 官方文档
delattr(obj, name, /)
Deletes the named attribute from the given object. delattr(x, 'y') is equivalent to ``del x.y''
  • 大致意思

    • 删除类属性
    • delattr(x, 'y') 相当于 del x.y
  • 举例
class A():
name = "York"
age = 18 a = A() print("a.name: ", a.name)
print("a.age: ", a.age) delattr(A, "age") print("a.name: ", a.name)
print("a.nage ", a.age)

>>>

a.name:  York
a.age: 18
a.name: York ---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-14-1b1893332691> in <module>()
11
12 print("a.name: ", a.name)
---> 13 print("a.nage ", a.age) AttributeError: 'A' object has no attribute 'age'

[Python3 填坑] 013 几个类相关函数的举例的更多相关文章

  1. [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...

  2. [Python3 填坑] 006 “杠零”,空字符的使用

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...

  3. [Python3 填坑] 018 组装类的几个例子

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...

  4. [Python3 填坑] 014 类的常用魔术方法举例

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 __init__() 2.2 __new__() 2.3 __call__() 2.4 __str__() 2.5 __repr__() ...

  5. [Python3 填坑] 009 深拷贝与浅拷贝

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...

  6. [Python3 填坑] 004 关于八进制

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...

  7. [Python3 填坑] 017 实例方法、静态方法、类方法的区别

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 先上例子 2.2 分析 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 内容 Py024-1 实例方法 ...

  8. [Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python2 中字典的遍历 2.2 Python3 中字典的遍历 2.3 结论 1. print( 坑的信息 ) 挖坑时间:2019/ ...

  9. [Python3 填坑] 005 如何“响铃”

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...

随机推荐

  1. python学习笔记(8):

    一.变量和类型 1.Python基本变量类型: 整数 ,浮点数 ,字符串, 布尔值 ,空值 ,函数, 模块, 类型, 自定义类型 2.变量定义 :变量存储在内存中的值.这就意味着在创建变量时会在内存中 ...

  2. Latex--入门系列二

    Latex 专业的参考 tex对于论文写作或者其他的一些需要拍版的写作来说,还是非常有意义的.我在网上看到这个对于Latex的入门介绍还是比较全面的,Arbitrary reference.所以将会翻 ...

  3. 如何设置移动端的tab栏

    这是添加tab栏的代码: {                     "id": "tabBar1",                     "st ...

  4. 查看Json的结构及内容:JsonViewerPackage

    下载链接:http://jsonviewer.codeplex.com/ 安装的过程简单,这里就不一一叙述. 找到JsonViewer 打开之后 点击Viewer 旁边的Text 放入你的Json 测 ...

  5. P.W.N. CTF - Web - Login Sec

    题目 链接:https://ctftime.org/task/6934 题解 Login 1 题目给出了源码 var http = require('http'); const crypto = re ...

  6. ATM机取款过程

    假设一个简单的ATM机的取款过程是这样的:首先提示用户输入密码,最多只能输入三次,超过3次则提示用户“密码错误,请取卡”结束交易.如果用户密码正确,再提示用户输入取款金额,ATM机只能输出100元的纸 ...

  7. 封装 pyinstaller -F -i b.ico excel.py

    安装pywin32,可以参考<怎么给python安装pywin32模块?> 一定要注意对应的python版本,否则不能安装.   5怎么给python安装pywin32模块?   2 用命 ...

  8. 对webpack的初步研究5

    Loaders 加载器是应用于模块源代码的转换.它们允许您在处理import或“加载” 文件时预处理文件.因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法.加载器可以将文 ...

  9. tensorflow2 keras.Callback logs

    官方文档上表示logs内存的内容为 on_epoch_end: logs include `acc` and `loss`, and optionally include `val_loss` (if ...

  10. Android逆向之旅---静态分析技术来破解Apk

    一.前言 从这篇文章开始我们开始我们的破解之路,之前的几篇文章中我们是如何讲解怎么加固我们的Apk,防止被别人破解,那么现在我们要开始破解我们的Apk,针对于之前的加密方式采用相对应的破解技术,And ...