首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python编程常见问题与解答

12.问:我创建了一个集合,想在里面加入一个列表作为元素,结果提示“TypeError: unhashable type: 'list'”,这是什么意思呢?...16.问:我想删除元组当中的一个元素,提示“TypeError: 'tuple' object doesn't support item deletion”,是什么意思呢?...答:在Python中,元组和字符串这样的容器类对象是不可变的,不支持其中元素的增加、修改和删除操作。...17.问:我想使用下标访问集合中的第一个元素,运行代码时提示“TypeError: 'set' object does not support indexing”,是因为集合不支持下标吗? 答:是的。...19.问:已知x是一个字符,我想使用x+1得到下一个字符,为什么提示“TypeError: can only concatenate str (not "int") to str”呢?

3.6K10

关于python类中继承问题和描述器

有句话叫躲得过初一躲不过十五,学习python过程中也有很多坎儿是必须要面对的,不管愿不愿意,都要去尝试,或许几遍都搞不懂,但还是要试,要不然一直没法提升自己。...类里面有好多内容,例如继承、多重继承、封装、描述器、属性、上下文管理、委托,装饰器等等,还有很多设计模式,这方面是我欠缺比较多的,其他知识还在思考阶段,先玩玩这个吧。...# 描述器只能在类级别被定义 # 操作实例底层的字典 (__dict__ 属性) # 描述器的 self.name 属性存储了在实例字典中被实际使用到的 key # 描述器的 字典值...__dict__[self.name] #把实例名和值写入字典 def __set__(self, instance, value): if not isinstance...(value, int): raise TypeError('Expected an int') instance.

34920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python进阶:利用NotImplemented优化你的对象交互逻辑,让Python对象间的操作更加智能与灵活

    跨类型操作:在自定义类型之间进行操作时,如果某个操作在当前类型上未定义,但可能在另一个类型上有定义,返回NotImplemented可以允许Python自动尝试使用另一个操作数的实现。...这是实现操作符重载和跨类型操作的一种机制。 NotImplementedError: 类型:NotImplementedError是一个内置的异常类,继承自Exception类。...在特殊方法中表明不支持的操作 在这个案例中,我们定义一个简单的类SpecialObject,它只在某些情况下支持比较操作。...# 尝试将SpecialObject与int比较(这将导致TypeError,因为int没有处理来自SpecialObject的NotImplemented的逻辑) try: print...(obj1 == 10) # 这将抛出TypeError,因为int的__eq__方法不知道如何处理来自SpecialObject的比较 except TypeError as e:

    8000

    【python】云打印实现

    这两天为了实现云打印功能找了很多相关的文章 记录一下这一篇,python云打印实现-朝花夕拾,代码通过监听文件夹有无产生新文件来判断是否执行,我尝试运行了下没问题,于是打算转载一下 程序运行结果...由于对方的代码和我实现的有点出入但都是先下载,后打印,只不过我的实通过mqtt服务器罢了,于是通过一步一步解析,我发现他这里有几个需要注意的,给大家和自己才个坑 1、settings.json 配置打印机和监控文件夹...2、不支持图片和pdf打印,有点难弄,后面处理了我会附上 3、不支持彩彩印规格这些 4、打印机用默认的即可,配置没多大作用,因为最后参数没有传过去 我改良后的 import time import...(scale * i) for i in bmp.size] print(scaled_width, scaled_height) x1 = int((printer_size[0] -...scaled_width) / 2) y1 = int((printer_size[1] - scaled_height) / 2) # 横向位置坐标 x1 = 1580

    42420

    工厂模式有三个Level,你能用Go写到第几层?

    设计模式中的工厂模式是我们编写代码时常用的一种建造型模式,用于创建指定类的实例。 在不使用设计模式的时候,我们是怎么创建类的实例的呢?...上面的黑话,大家一定不要学,在公司用容易有不好的结果...我这里只是为了提升点喜感,下面用正经话再说一遍。 刚才说到了把一些执行流程明确、但流程细节有差异的业务处理逻辑抽象成公共类库。...于是乎,聪明的你一定会想到,这时候,我让类库再暴露出一个 NewXXX 之类的方法,这个 NewXXX 方法能够根据条件生产出具体类型的实例返回给业务程序用。...// Printer 简单工厂要返回的接口类型 type Printer interface { Print(name string) string } 程序通过简单工厂向客户端提供需要的语种的打印机...// BaseOperator 是所有 Operator 的基类 // 封装公用方法,因为Go不支持继承,具体Operator类 // 只能组合它来实现类似继承的行为表现。

    26630

    一篇文章带你了解Java中的抽象类和接口知识

    基础入门篇——面向对象和类的定义,这篇文章带大家一起学习下Java知识中的抽象类和接口知识,一起来看看吧。...Cherry对象 c.info();//调用info()方法 } } 运行的结果是: 我是一个樱桃,重量为66g!...4.实现接口所有的方法例子 //定义Printer接口 interface Printer{ int max_line=20;//定义全局常量 void printRun();//定义抽象方法...()方法 } } 输出的结果是: 彩色打印机正在启动 彩色打印机正在打印中 从上面代码中,首先是定义Printer接口,定义全局常量、两个抽象方法分别是printRun()和printData(),...然后定义Colorprinter类并使用implements关键字实现Printer接口,我们发现Colorprinter类实现Printer接口是可以被实例化的,这个就是类和接口的之间的关系。

    14210

    C++ Template 基础篇(一):函数模板

    大家好,又见面了,我是你们的朋友全栈君。...Template 基础篇-函数模板 Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。...(实例化),然后才能确定vtable的大小,而显然这是不可行的,除非改变当前compiler的工作机制。...数组名转换为头指针 int a[10] = {0}; -> T* 函数名转换为函数指针 void func(int a){...} -> T* 函数模板重载 函数模板之间,函数模板与普通函数之间可以重载..."; func(&s); //调用普通函数,通用版本和特殊版本虽然也都可以用,但是编译器选择最特化的版本 func(&s); //调用指针版本,通过告诉编译器我们需要用template而不是普通函数

    1.7K20

    基于protobuf的代码生成

    前言 前段时间我用 Python 和 Mako 模板引擎重新梳理了我们项目中的一些重复的流程。重构了所有的RPC系统。这个工作其实完成了挺久了,但是迫于懒一直拖着没写完这篇记录,就一直没发。...我这次的实现一方面是针对我们内部的服务提供类似很多RPC系统也提供的内部接口、实现和注册流程的标准化,另一方面也是尽可能灵活且通用一些,可以用于接入外部的SDK。...所以上面有一大坨代码是照着官方的转换规则再手写一遍。另一个不太方便的地方是它对自定义变量只支持简单的字符串占位符替换,不支持复杂表达式和结构。...,大部分静态模板引擎不支持复杂的逻辑控制流 原生代码插入点 不支持,但通常不需要,可以直接改模板 允许使用内置插入点 允许使用内置插入点 实现 实现的基本原理就是按 descriptor.proto...: "custom" // 和输出代码的路径相关 service_type : SERVICE_TYPE_WEBSOCKET // 这是一个Websocket

    1.6K21

    基于protobuf的代码生成

    前言 前段时间我用 Python 和 Mako 模板引擎重新梳理了我们项目中的一些重复的流程。重构了所有的RPC系统。这个工作其实完成了挺久了,但是迫于懒一直拖着没写完这篇记录,就一直没发。...我这次的实现一方面是针对我们内部的服务提供类似很多RPC系统也提供的内部接口、实现和注册流程的标准化,另一方面也是尽可能灵活且通用一些,可以用于接入外部的SDK。...所以上面有一大坨代码是照着官方的转换规则再手写一遍。另一个不太方便的地方是它对自定义变量只支持简单的字符串占位符替换,不支持复杂表达式和结构。...,大部分静态模板引擎不支持复杂的逻辑控制流 原生代码插入点 不支持,但通常不需要,可以直接改模板 允许使用内置插入点 允许使用内置插入点 实现 实现的基本原理就是按 descriptor.proto...: "custom" // 和输出代码的路径相关 service_type : SERVICE_TYPE_WEBSOCKET // 这是一个Websocket

    92130

    Go 100 mistakes之常见的JSON错误

    嵌入字段用于提升嵌入类型的字段和方法,如下: type Event struct { ID int time.Time ① } ① 嵌入的字段 time.Time是一个嵌入字段,因为它没有名称声明...首先,如果一个嵌入字段类型实现了一个接口,那么包含该嵌入字段的结构体也将实现这个接口。从某种意义上来说,这是一种继承能力。...让我们看一下下面的例子,我们定义了一个Foo结构体和一个嵌入Foo字段的Bar结构体: type Printer interface { ① print() } type Foo struct{}...虽然嵌入类型提升了其字段和方法有时会很方便,但同时也能导致细微的bug,因为父结构体也隐式的实现了该接口。当使用嵌入字段时,我么应该确保了解可能的副作用。 3....event1的值接近于event2的值,除了m=+0.000338660部分。那这部分是什么意思呢? 我们应该知道操作系统提供了两种时钟类型。首先,墙上时钟用于知道当天的当前时间。

    51320

    浅析Java语言中接口的特点和继承相关知识

    //定义Printer接口 interface Printer{ int max_line=20;//定义全局常量 void printRun();//定义抽象方法pirntRun(...从上面的代码中,首先是定义了Printer接口,定义全局常量和两个方法分别是printRun()和printData(),然后再定义一个Autopriner接口来继承Printer接口,再Colorprinter...类实现Printer接口,此时,Autopriner接口有三个抽象方法,通过Colorprinter类实例化对象然后调用对应的方法。...c.testA();//调用C类的testA()方法 c.testB();//调用C类的testB()方法 } } 运行的结果是: 我是A 我是B 从上面代码中,...定义了A和B接口,在C类中使用implements关键字实现A和B的接口的方法,实例化对象并调用对应的方法。

    16210

    Python3.6.5标准库文档(完整中文版)---内置函数(八)

    这是一个整数,它在其生命周期中保证对这个对象唯一且恒定。两 个非重叠生命期的对象可能具有相同的id() 值。 CPython实现细节:这是内存中对象的地址。...int('010', 0) int('010') int('010', 8) 在版本3.4中进行了更改:如果base不是实例,int并且基础对象具有 base....isinstance(object,classinfo ) 如果对象参数是classinfo 参数的实例或其(直接,间接或虚拟)子类的实例,则返回true。...如果classinfo不是类型和元组的类型或元组,TypeError则会引发异常。...如果它不支持这些协议中的任何一 个, TypeError则会引发。如果给出了第二个参数sentinel,那么object必须是可调用的对象。

    99220

    【Shiro】Shiro从小白到大神(三)-权限认证(授权)

    本节讲权限认证,也就是授权 基于角色的访问控制和基于权限的访问控制的小实例 以及注解式授权和JSP标签授权详解 权限认证 权限认证核心要素 权限认证,也就是访问控制,即在应用中控制谁能访问哪些资源...通过类型 如果你不想获取所有的,比如在用户名和用户id之间,我想获取用户id,可以通过下面这种方式: User ID: 等同于...所有实例的所有权限 printer:*:* 单个实例的所有权限 printer:*:lp7200 单个实例的多个权限 printer:query,print:lp7200 query和print之间用逗号隔开...printer:lp7200 和 printer:*:lp7200 是不同的!!!...但请记住,“printer:print”等同于“printer:print:*”! 因此,这是一个不正确的检查。

    1.6K20

    【Go语言学习】匿名函数与闭包

    这就类似于变量与常量之间的区别。 闭包的特性 说完了 匿名函数,我们再回过头来看看 闭包。...当每次调用包含闭包的函数时都将返回一个新的闭包实例,这些实例之间是隔离的,分别包含调用时不同的引用环境现场。不同于函数,闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。...没关系,让我们先来看一个栗子: func adder() func() int { var i = 0 return func() int { i++ return i } } 这是用闭包实现的简单累加器...defer 这是匿名函数和闭包最常用的地方,我们会经常在 defer 函数中使用匿名函数和闭包来做释放锁,关闭连接,处理 panic 等函数善后工作。...总结 闭包是一种特殊的匿名函数,是由函数体和引用的外部变量一起组成,可以看成类似如下结构: type FF struct { F unitptr A *int B *int X *int //

    76741

    TypeError报错处理

    哈喽,大家好,我是木头左!一、Python中的TypeError简介这个错误通常表示在方法调用时,参数类型不正确,或者在对字符串进行格式化操作时,提供的变量与预期不符。...2.1 常见的字符串格式化方法% 格式化str.format() 方法f-string(Python 3.6+)2.2 实例分析:哪里出了错?...TypeError通常发生在以下几种情况:方法调用时参数类型不匹配。对非字符串类型执行字符串格式化操作。在不支持的类型上使用链式比较操作。对已经被关闭的文件或其他资源进行操作。...这些情况背后的原因是Python的强类型特性和动态类型检查机制。在编写代码时,需要确保每个操作都符合Python的类型规则。四、如何避免和解决TypeError?...我是木头左,感谢各位童鞋的点赞、收藏,我们下期更精彩!

    18810
    领券