2013-08-22 27 views
1

我在Defining New Types指南後面創建了一個Python擴展。禁用設置python擴展對象的屬性

在某一點上,它說要使用PyGetSetDef[]來定義getterssetters以獲取新類型的屬性。我已經這樣做了,但是這些獲取者和設置者被忽略,我不知道爲什麼。

目前,我有一些代碼是這樣的:

import new_ext_obj 
test = new_ext_obj.init("string") # sets the 'name' attribute of the new object 
test.name # returns "string" 
test.name = "what" # 
test.name # returns "what" 

我試圖讓這個test.name = "what"將無法​​正常工作 - 我不想這個屬性是多變的它已被初始化之後。然而,我的二傳被忽視,所以我不知道如何做到這一點。有任何想法嗎?

回答

0

原來你需要創建一個setattr函數,詳見here