在此python文档页面上,它说:
像其身份一样,对象的类型也是不可更改的。
我尝试这个脚本,
#!python3
class Foo:
num = 1
pass
class Bar:
num = 2
pass
f1,f2= Foo(), Foo()
f2.__class__ = Bar
print( type(f1), type(f2), f1.num, f2.num )
结果显示:
<class '__main__.Foo'> <class '__main__.Bar'> 1 2
我想我更改了type
的f2
。
怎么了,我想念什么?
该页面的脚注说:
[1]在某些情况下,在某些受控条件下可以更改对象的类型。但是,通常这不是一个好主意,因为如果处理不当,它可能会导致某些非常奇怪的行为。
如果您尝试将__class__
f2的更改为list
:
f2.__class__ = list
引发TypeError:
TypeError: __class__ assignment: only for heap types
问题内容: 我有一个包含JSON对象的文件。已通过以下方式加载: 此时,input_data仅包含一个字符串,现在我将其解析为JSON: data_content具有我需要的字符串的JSON表示形式,但是由于某种原因,在json.loads之后我不清楚,它改变了键的原始顺序,例如,如果我的文件包含以下内容: 在json.loads之后,顺序更改为类似以下内容: 为什么会这样呢?有办法保留订单吗?我
我有以下Java超类,每个属性都有构造函数、getter和setter: 和一个car子类,它扩展了vehicle超类,并具有几个独特的属性: 我创建一个新的vehicle对象链表,并向其中添加一个新的car对象: 我可以用下面这样的函数更改属于vehicle超级类的任何属性: 但是当我试图创建一个类似的函数来更改其中一个子类属性时,我得到了这个错误:“方法setWheels(int)对于类型Ve
我正在java中做一个火花流项目。我试图发送一些消息从火花到阿帕奇Kafka使用Kafka-生产者java api。由于为每个元素创建KafkaProducer实例将非常昂贵,所以我试图使用一个使用apache公共池框架的生产者池。如下面的代码片段所示,我正在创建GenericObjectpool实例,并将其广播如下所示:- KafkaProducerFactory类的代码粘贴在下面:- 但上面的
我有一个UIImageView对象,它可以在屏幕上打开和关闭,只需按一下UIButton,我就可以更改它的布局约束。我使用以下代码成功地为该“运动”设置了动画: 其中addY是屏幕顶部的约束,addingScreen是我的对象。我的问题是,我有一系列对象对addingScreen具有垂直行间距约束,我希望它们一起滑动。发生的情况是,这些对象瞬间移动到它们的最后一帧,而在我在代码中设置的0.5秒内缓
还是由于 JavaScript 的限制,Vue 不能检测对象属性的添加或删除: var vm = new Vue({ data: { a: 1 } }) // `vm.a` 现在是响应式的 vm.b = 2 // `vm.b` 不是响应式的 对于已经创建的实例,Vue 不能动态添加根级别的响应式属性。但是,可以使用Vue.set(object, key, value)方法向嵌
我正在使用Android MVVM架构和LiveData。我有一个这样的物体 我的视图模型是这样的 如何确保用户对象中的某个字段发生更改时,观察员收到通知?顺便说一句,重要的是要将这些数据保存在单独的对象中,而不是在ViewModel中使用字符串等主要值。