python type和 isinstance is and ==

news/2024/7/4 0:53:49 标签: python, class
class="baidu_pl">
class="article_content clearfix">
class="markdown_views prism-tomorrow-night">
  • type:查看一个对象的类型
  • isinstance:查看是不是某个类的实例
  • isinstance()#考虑继承关系,我附庸的附庸也是我的附庸
  • type()#不考虑继承关系的,我附庸的附庸不是我的附庸
  • 直接上代码:
class="prism language-class="tags" href="/tags/PYTHON.html" title=python>python">class="token keyword">class class="token class-name">Fatherclass="token punctuation">(class="token builtin">objectclass="token punctuation">)class="token punctuation">:
    class="token keyword">pass


class="token keyword">class class="token class-name">Sonclass="token punctuation">(Fatherclass="token punctuation">)class="token punctuation">:
    class="token keyword">pass

ls class="token operator">= Sonclass="token punctuation">(class="token punctuation">)
class="token keyword">printclass="token punctuation">(class="token builtin">isinstanceclass="token punctuation">(lsclass="token punctuation">,Sonclass="token punctuation">)class="token punctuation">)
class="token keyword">printclass="token punctuation">(class="token builtin">isinstanceclass="token punctuation">(lsclass="token punctuation">,Fatherclass="token punctuation">)class="token punctuation">)class="token comment">#考虑到继承关系,ls也是Father的实例
class="token keyword">printclass="token punctuation">(class="token builtin">isinstanceclass="token punctuation">(Sonclass="token punctuation">,Fatherclass="token punctuation">)class="token punctuation">)
class="token keyword">printclass="token punctuation">(class="token builtin">typeclass="token punctuation">(lsclass="token punctuation">) class="token keyword">is Sonclass="token punctuation">)    class="token comment">#True
class="token keyword">printclass="token punctuation">(class="token builtin">typeclass="token punctuation">(lsclass="token punctuation">) class="token keyword">is Fatherclass="token punctuation">)  class="token comment">#False

提到这两个,也容易想到is & ==
#这两个ID的值是不一样的, is 和 ==的区别:

  • is 比较的是是不是引用的同一个对象 或者ID
  • ==比较的是值,值是不是一样

http://www.niftyadmin.cn/n/1684933.html

相关文章

多继承 查看继承顺序的‘__mro__’魔法方法

class D(object):passclass B(D):passclass C(D):passclass A(B,C):passprint(A.__mro__)可以通过__mro__魔法方法查看多继承的顺序

GUI编程:菜单的操作

实现菜单和弹出式菜单的各项功能 import tkinter as tk import tkinter.scrolledtext as tst class Application(tk.Frame):def __init__(self,masterNone): #构造函数tk.Frame.__init__(self,master)self.grid()self.createWidgets() #声明对象方法,创建子组件s…

python 多线程 互斥锁和死锁

在上一节提到的资源抢占的问题,那么这个问题如何解决呢?互斥锁就可以解决这个问题: 资源抢占的问题原因在于两个线程操作同一个资源,此时这个资源的内容就混乱了,对于两个线程都不能正常服务 此时就可以考虑在一个线程…

在画布上实现正弦曲线和文字的绘制

在画布上实现正弦曲线和文字的绘制 from tkinter import * import math WIDTH400;HEIGHT210 #画布的宽度和高度 ORIGIN_X2;ORIGIN_YHEIGHT/2 #原点x,y SCALE_X40;SCALE_Y100 #x,y轴缩放倍数 END_ARC360*2 #画多长 ox0;oy0;x0;y0 #坐标初始值 arc0 …

python实现死锁和重入锁

在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。 import threading import timeclass MyThread1(threading.Thread):def run(self):# 对mutexA上锁mutexA.acquire()# mutexA上锁后,延时1秒…

Eclipse的安装

用Eclipse集成开发环境开发JAVA程序 1.在http://www.eclipse.org/downloads/下载Eclipse的如下版本的程序包: 2.在http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html下载JRE的如下版本的可执行文件 3.先安装jre-8u51-windows-…

基于Quartus II 的FPGA/CPLD数字系统设计与应用(原理图编辑)

本文基于Quartus II 13.0版本举例说明原理图编辑的流程。 1 .建立新的工程 1). 指定工程名称:File->New Project Wizard打开向导对话框,选择工程路径和填写工程名和实体名(工程名和实体名相同),如下图…

进程和多进程实现多任务

进程定义 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。并且进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 进程概念 • 进程是一个实体。每…