回答編集履歴
6
追記
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのは原理的には可能……と思ったけど、恐らく属性アクセスの仕組みの側でpropertyオブジェクトへの参照を特別扱いにしているので、mypropertyを作るのは難しいかもしれない……。
|
6
6
|
|
7
|
-
|
7
|
+
いずれにせよ、Pythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。基本的には、クラスという仕組みとデコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
8
8
|
|
9
9
|
同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
|
10
10
|
|
5
追記
answer
CHANGED
@@ -2,8 +2,10 @@
|
|
2
2
|
|
3
3
|
Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
|
4
4
|
|
5
|
-
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのは
|
5
|
+
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのは原理的には可能……と思ったけど、恐らく属性アクセスの仕組みの側でpropertyオブジェクトへの参照を特別扱いにしているので、mypropertyを作るのは難しいかもしれない……。
|
6
6
|
|
7
|
+
そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。基本的には、クラスという仕組みとデコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
8
|
+
|
7
9
|
同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
|
8
10
|
|
9
11
|
組み込みの「デコレータとして使えるもの」は「組み込み関数」のページにまとめて書かれています(それでぜんぶ、のはず)。`@`でページ検索するとわかりますが、
|
4
追記
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
|
4
4
|
|
5
|
-
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しく
|
5
|
+
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくないはずです(と、思いますが、さすがに書いたことがないのですぐ思いつきはしません。実際の実装がpure Pythonだと厳しい仕組みになっている可能性はあります)。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
6
6
|
|
7
7
|
同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
|
8
8
|
|
3
追記
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
|
4
4
|
|
5
|
-
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
5
|
+
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません(と、思いますが、さすがに書いたことがないのですぐ思いつきはしません)。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
6
6
|
|
7
7
|
同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
|
8
8
|
|
2
追記
answer
CHANGED
@@ -2,10 +2,17 @@
|
|
2
2
|
|
3
3
|
Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
|
4
4
|
|
5
|
-
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。
|
5
|
+
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
|
6
6
|
|
7
|
-
同じような応用として、classmethodなどが組み込みで定義されています。
|
7
|
+
同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
|
8
8
|
|
9
|
+
組み込みの「デコレータとして使えるもの」は「組み込み関数」のページにまとめて書かれています(それでぜんぶ、のはず)。`@`でページ検索するとわかりますが、
|
10
|
+
- classmethod
|
11
|
+
- property
|
12
|
+
- staticmethod
|
13
|
+
|
14
|
+
だけです。なお、他に組み込みモジュール内に定義されているデコレータも存在します(functools.lru_cacheなど)。
|
15
|
+
|
9
16
|
---
|
10
17
|
|
11
18
|
……という関係性がよくわからなくて混乱していそうな気がしたので、書いてみました。違っていたらすみません。
|
1
追記
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
|
4
4
|
|
5
|
-
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません。
|
5
|
+
それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。
|
6
6
|
|
7
7
|
同じような応用として、classmethodなどが組み込みで定義されています。「組み込み関数」のページにまとめて書かれています。
|
8
8
|
|