teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

6

追記

2021/06/05 17:46

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのは原理的には可能……と思ったけど、恐らく属性アクセスの仕組みの側でpropertyオブジェクトへの参照を特別扱いにしているので、mypropertyを作るのは難しいかもしれない……。
6
6
 
7
- そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。基本的には、クラスという仕組みとデコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
7
+ いずれにせよ、Pythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。基本的には、クラスという仕組みとデコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
8
8
 
9
9
  同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
10
10
 

5

追記

2021/06/05 17:46

投稿

hayataka2049
hayataka2049

スコア30939

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

4

追記

2021/06/05 17:45

投稿

hayataka2049
hayataka2049

スコア30939

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Pythonで言語レベルで機能しているのはdecoratorの方であり、decoratorとして機能する関数やクラスを自分で定義して使ったりすることもできます。
4
4
 
5
- それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくありません(と、思いますが、さすがに書いたことがないのですぐ思いつきはしません)。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
5
+ それに比べればpropertyクラスなどは一つの応用に過ぎず、仮に組み込みになかったとしても、同様に機能するものをpure Pythonで書くのはさほど難しくないはずです(と、思いますが、さすがに書いたことがないのですぐ思いつきはしません。実際の実装がpure Pythonだと厳しい仕組みになっている可能性はあります)。そしてPythonの「プロパティ」関連の機能は、けっきょくこれがすべてです。デコレータという仕組みの上に「プロパティのように使えるもの」を実装しているだけです。
6
6
 
7
7
  同じような応用として、classmethodなどが組み込みで定義されています。こちらも同じような位置づけです。
8
8
 

3

追記

2021/06/05 17:23

投稿

hayataka2049
hayataka2049

スコア30939

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

追記

2021/06/05 17:21

投稿

hayataka2049
hayataka2049

スコア30939

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

追記

2021/06/05 17:08

投稿

hayataka2049
hayataka2049

スコア30939

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