当前位置: 首页 > 面试题库 >

在Python中分配实例的__class__属性

漆雕升
2023-03-14
问题内容

在什么情况下,在什么情况下不可能__class__在Python中分配实例的属性?

诸如此类的错误消息TypeError: __class__ assignment: only for heap types并不能真正为我解决。


问题答案:

您只能分配给__class__用户定义的类的实例(即,使用class关键字定义)的实例的属性,并且新值也必须是用户定义的类。这些类是新样式还是旧样式都没有关系。(但是,您不能混合使用它们。您不能将旧的类实例转换为新的类实例。)另请参见Python
Bug
Tracker中的此问题,该问题还抱怨该错误消息有些难了解。

只是添加Rafe在上述评论中所说的话: 切勿在生产中这样做



 类似资料:
  • 问题内容: 我在python中有一个问题。 文档说这是一个类实例所属的类。因此,我进行了一系列实验: 一切顺利。 然后我输入如下代码: 从上面的代码中,我认为也许等于或,但是以下代码使我感到惊讶: 为什么更改了,但仍然保持在3?而且,当我改变时,变得。世界到底是什么? 问题答案: “从以上代码中,我认为NewCounter1.count等于NewCounter1。class.count” 问题是,

  • 问题内容: 我有一个由外部库提供的类。我已经创建了该类的子类。我也有一个原始类的实例。 现在,我想将此实例转换为我的子类的一个实例,而不更改该实例已经具有的任何属性(但无论如何,我的子类都会覆盖这些属性)。 以下解决方案似乎有效。 但是,我不认为该解决方案没有包含我从未想到的警告(对三重否定表示抱歉),尤其是因为重新分配魔术师感觉不对。即使这行得通,我也不禁感到应该有一种更Python化的方式来做

  • 本文向大家介绍实例讲解Python中的私有属性,包括了实例讲解Python中的私有属性的使用技巧和注意事项,需要的朋友参考一下 在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子: 执行输出: 访问私有属性__name时居然提示找不到属性成员而不是提示权限之类的,于是当你这么写却不报错: 执行结果: 1 lisi 在Python中就算继承也不能相互访问私有变量,如: 执行

  • 我正在制作一个文本冒险游戏。 我创建了一个类,并创建了该类的几个不同实例。这个类有很多属性。我试图将类的每个实例附加到一个列表中。然后我希望能够从列表中的一个实例中提取一个属性。 我被告知要实施: 不要让每个房间都是[description,north,east,south,west]的列表,而是创建一个房间类。该类应该有一个构造函数,该构造函数接受(description,north,east,

  • 主要内容:类变量(类属性),实例变量(实例属性),局部变量无论是类属性还是类方法,都无法像普通变量或者函数那样,在类的外部直接使用它们。我们可以将类看做一个独立的空间,则类属性其实就是在类体中定义的变量,类方法是在类体中定义的函数。 前面章节提到过,在类体中,根据变量定义的位置不同,以及定义的方式不同,类属性又可细分为以下 3 种类型: 类体中、所有函数之外:此范围定义的变量,称为类属性或类变量; 类体中,所有函数内部:以“self.变量名”的方式定义的

  • 问题内容: 我是python的新手,了解到类属性就像C ++中的静态数据成员一样。但是,尝试以下代码后,我感到困惑: f2.a是否也等于5? 如果将a定义为列表而不是整数,则预期行为: 我研究了 Python:类和实例属性之间的区别,但是它不能回答我的问题。 谁能解释为什么会有所不同?谢谢 问题答案: 在第二个示例中,您没有做相同的事情。在第一个示例中,您要分配一个新值: 在第二个示例中,您只是在