[Python3 填坑] 013 几个类相关函数的举例
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 几个类相关函数的举例的更多相关文章
- [Python3 填坑] 001 格式化符号 & 格式化操作符的辅助指令
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python 格式化符号表 举例说明 (1) %c (2) %s 与 %d (3) %o (4) %x (5) %f (6) %e (7 ...
- [Python3 填坑] 006 “杠零”,空字符的使用
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 \0 是空字符,输出时看不到它,但它占 1 个字符的长度 2.2 \0 "遇八进制失效" 2.3 \0 与 '' 不 ...
- [Python3 填坑] 018 组装类的几个例子
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 MetaClass 举例 2.2 type 举例 2.3 MetaClass 举例 1. print( 坑的信息 ) 挖坑时间:2019 ...
- [Python3 填坑] 014 类的常用魔术方法举例
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 __init__() 2.2 __new__() 2.3 __call__() 2.4 __str__() 2.5 __repr__() ...
- [Python3 填坑] 009 深拷贝与浅拷贝
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python3.7 官方文档 2.2 赋值.切片与 copy() 分析 分析 分析 分析 2.3 copy 模块 分析 分析 2.4 小 ...
- [Python3 填坑] 004 关于八进制
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 2.2.1 先说结论 2.2.2 八进制的用途 2.2.3 少废话,上例子 1. print( 坑的信息 ...
- [Python3 填坑] 017 实例方法、静态方法、类方法的区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 先上例子 2.2 分析 1. print( 坑的信息 ) 挖坑时间:2019/04/07 明细 坑的编码 内容 Py024-1 实例方法 ...
- [Python3 填坑] 012 字典的遍历在 Python2 与 Python3 中区别
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 Python2 中字典的遍历 2.2 Python3 中字典的遍历 2.3 结论 1. print( 坑的信息 ) 挖坑时间:2019/ ...
- [Python3 填坑] 005 如何“响铃”
目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 问题的由来 2.2 问题的解决 1. print( 坑的信息 ) 挖坑时间:2019/01/08 明细 坑的编码 内容 Py004-2 ...
随机推荐
- Spring、Spring MVC、Struts2、、优缺点整理(转)
Spring 及其优点 大部分项目都少不了spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢 Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量 ...
- openSSH学习笔记(一)
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现.SSH协议族可以用来进行远程控制, 或在计算机之间传送文件.而实现此功能的传统方式,如telnet(终端仿真协议). rc ...
- ES6——面向对象-基础
面向对象原来写法 类和构造函数一样 属性和方法分开写的 // 老版本 function User(name, pass) { this.name = name this.pass = pass } U ...
- 从excel表中生成批量SQL
excel表格中有许多数据,需要将数据导入数据库中,又不能一个一个手工录入,可以生成SQL,来批量操作. ="insert into Log_loginUser (LogID, Logi ...
- js中跳出forEach循环
缘由:近期在项目中使用lodash.js中的_.foreach方法处理数据,需要在满足条件时结束循环并不执行后面的js代码. 因为foreach中默认没有break方法.在尝试中使用了return f ...
- 初学Java 二维数组找出最近的两个点
import java.util.Scanner; public class FindNearestPoints { public static void main(String[] args) { ...
- Swagger详解(SpringBoot+Swagger集成)(转)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/ai_miracle/article/de ...
- tf.expand_dims
想要增加一维,可以使用tf.expand_dims(input, dim, name=None)函数 t = np.array(np.arange(1, 1 + 30).reshape([2, 3, ...
- word从任意页设置页码
把所有页都设置页码 首先设置分隔符,下一页 在第二节中,找到插入页码,设置起始页码为1即可
- myeclipce注册
今天提示MyEclipse Trial Expired,如何手动获取MyEclipse 注册码! 1.建立JAVA Project,随便命名,只要符合规则就行. 2.在刚刚建好的Project右击sr ...