Python基础(获取对象信息)
import types
print(type('abc') == str)#True
print(type(123) == int)#True def f1():
pass
print(type(f1) == types.FunctionType)#True
print(type(abs) == types.BuiltinFunctionType)#True
print(type(lambda x:x) == types.LambdaType)#True
print(type(x for x in range(0,11)) == types.GeneratorType)#True #isinstance()判断的是一个对象是否是该类型本身,或者位于该类型的父继承链上,总是优先使用isinstance()判断类型,可以将指定类型及其子类“一网打尽”
print(isinstance(b'b',bytes))#True
print(isinstance([1,2,3],(list,tuple)))#True 一个变量是否是某些类型中的一种 #获得一个对象的所有属性和方法,可以使用dir()函数,它返回一个包含字符串的list
print(dir('abc'))#['__add__', '__class__',..., '__subclasshook__', 'capitalize', 'casefold',..., 'zfill'] #配合getattr()、setattr()以及hasattr(),我们可以直接操作一个对象的状态
class F1(object):
def __init__(self,num):
self.__num__ = num def get_num(self):
return self.__num__
f1 = F1(300)
print(hasattr(f1,'__num__'))#True
setattr(f1,'x',200)#设置一个属性'x'
print(getattr(f1,'x'))#200
print(getattr(f1,'get_num'))#<bound method F1.get_num of <__main__.F1 object at 0x000001C2A4B00358>> 可以获得对象的方法
#print(F1.x)#x只是添加到了实例f1的属性里,没有添加在F1的属性里 #定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到
class Student(object):
name = 'Student' s = Student() # 创建实例s
print(s.name) #Student 打印name属性,因为实例并没有name属性,所以会继续查找class的name属性
print(Student.name) # Student打印类的name属性
s.name = 'Michael' # 给实例绑定name属性
print(s.name) #Michael 由于实例属性优先级比类属性高,因此,它会屏蔽掉类的name属性
print(Student.name) #Student 但是类属性并未消失,用Student.name仍然可以访问
del s.name # 如果删除实例的name属性
print(s.name) #Student 再次调用s.name,由于实例的name属性没有找到,类的name属性就显示出来了
#不要对实例属性和类属性使用相同的名字,因为相同名称的实例属性将屏蔽掉类属性,但是当你删除实例属性后,再使用相同的名称,访问到的将是类属性
Python基础(获取对象信息)的更多相关文章
- python基础——获取对象信息
python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...
- Python面向对象-获取对象信息type()、isinstance()、dir()
type() type()函数用于判断对象类型: >>> type(11) <class 'int'> >>> type('abc') <clas ...
- 【Python】[面性对象编程] 获取对象信息,实例属性和类属性
获取对象信息1.使用isinstance()判断class类型2.dir() 返回一个对象的所有属性和方法3.如果试图获取不存在的对象会抛出异常[AttributeError]4.正确利用对象内置函数 ...
- python 获取对象信息
当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> ...
- Python面向对象 -- 继承和多态、获取对象信息、实例属性和类属性
继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方 ...
- python类的继承和多态,获取对象信息
继承 类的继承机制使得子类可以继承父类中定义的方法,拥有父类的财产,比如有一个Animal的类作为父类,它有一个eat方法: class Animal(object): def __init__(se ...
- python 面向对象编程、获取对象信息
面向对象与面向过程 参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0 ...
- python获取对象信息
获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: class Person(object): def ...
- python动态获取对象的属性和方法 (转载)
首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__ ...
- python动态获取对象的属性和方法
http://blog.csdn.net/kenkywu/article/details/6822220首先通过一个例子来看一下本文中可能用到的对象和相关概念.01 #coding: UTF- ...
随机推荐
- mysql的一次意外
打开navcat连接本地mysql数据库的时候说mysql服务无法连接,切换到cmd用命令行来启动报错,发生系统错误5,查看百度,需用管理员权限运行, 用管理员运行依旧不好使 C:\WINDOWS\s ...
- 三千字介绍Redis主从+哨兵+集群
一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...
- Dubbo与Zookeeper简单理解
理论 在<分布式系统原理与范型>一书中有如下定义:"分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统 "; 分布式系统是由一组通过网络进行通信. ...
- C#开发BIMFACE系列43 服务端API之图纸拆分
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在上一篇博客<C#开发BIMFACE系列42 服务端API之图纸对比>的最后留了一个问题,在常规业务场景下,一 ...
- MySQL数据库建表命名的坑
今天建了一张表,表名为--inOut: 然后再使用中发现怎么都是SQL错误: 然后在Navacat上发现 这是一个关键词! 如果非要继续使用,只能这样: 类似的坑还有user等.
- Markdown数学公式
1. 显示位置与大小 正文(inline)中的LaTeX公式用$...$定义, 显示在当前行内. $\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$ \(\sum_{i ...
- 《手把手教你》系列技巧篇(三十二)-java+ selenium自动化测试-select 下拉框(详解教程)
1.简介 在实际自动化测试过程中,我们也避免不了会遇到下拉选择的测试,因此宏哥在这里直接分享和介绍一下,希望小伙伴或者童鞋们在以后工作中遇到可以有所帮助. 2.select 下拉框 2.1Select ...
- python的函数参数传递方式
python的一切数据类型都是对象.但是python的对象分为不可变对象和可变对象.python的变量是引用,对python变量的赋值是引用去绑定该对象. 可变对象的数据发生改变,例如列表和字典,引用 ...
- 周末愉快--css画大熊猫
周末找了点轻松的话题,css画大熊猫. 先上效果图 欢迎竞猜大熊猫到底说了什么?? 再上源码 <!DOCTYPE html> <html lang="en"> ...
- 第五章第四周习题: Transformers Architecture with TensorFlow
目录 Transformer Network Packages 1 - Positional Encoding 1.1 - Sine and Cosine Angles Exercise 1 - ge ...