質問編集履歴
2
名前空間を分けたいことの追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,6 +22,8 @@
|
|
22
22
|
|
23
23
|
このelse部分をなんとかすることで,その変数名が定義されていない場合,外部から代入することができるが,既に定義されている場合,再代入を禁止するような~~Javaでいうfinalみたいな~~ものを作りたいのです.(追記:Javaのfinal演算子の挙動を勘違いしていたかもしれないので,打消し線を入れておきます)
|
24
24
|
|
25
|
+
(追記:また,参考サイトの冒頭にあるコードでも,所望の動作はするのですが,名前空間をわけることができないため,複数そのようなクラスをつくるというようなことができません.)
|
26
|
+
|
25
27
|
self.__dict__[name]=value
|
26
28
|
としようかと思ったのですが
|
27
29
|
この__dict__はmappingproxyですので,
|
1
やりたいことは
title
CHANGED
File without changes
|
body
CHANGED
@@ -20,11 +20,14 @@
|
|
20
20
|
ただし,不完全なところがありConstMetaのelse節内部のself.__setattr__(name,value)で必ずTypeError: expected 2 arguments, got 1
|
21
21
|
が表示されてしまいます.(Constとしての機能は果しています)
|
22
22
|
|
23
|
-
このelse部分をなんとかすることで,外部から代入することができるが,再代入を禁止するようなJavaでいうfinalみたいなものを作りたいのです.
|
23
|
+
このelse部分をなんとかすることで,その変数名が定義されていない場合,外部から代入することができるが,既に定義されている場合,再代入を禁止するような~~Javaでいうfinalみたいな~~ものを作りたいのです.(追記:Javaのfinal演算子の挙動を勘違いしていたかもしれないので,打消し線を入れておきます)
|
24
24
|
|
25
25
|
self.__dict__[name]=value
|
26
26
|
としようかと思ったのですが
|
27
27
|
この__dict__はmappingproxyですので,
|
28
28
|
TypeError: 'mappingproxy' object does not support item assignment
|
29
29
|
となります.
|
30
|
-
なにか良い知恵,代替手段のようなものはないでしょうか?
|
30
|
+
なにか良い知恵,代替手段のようなものはないでしょうか?
|
31
|
+
|
32
|
+
やりたいこと
|
33
|
+
その変数名が定義されていない場合,外部から代入することができるが,既に定義されている場合,再代入を禁止するようなメタクラスの実装
|