回答編集履歴
7
出典追加
answer
CHANGED
@@ -40,6 +40,7 @@
|
|
40
40
|
|
41
41
|
|
42
42
|
```Python3
|
43
|
+
# 出典 http://code.activestate.com/recipes/384122-infix-operators/
|
43
44
|
class Infix:
|
44
45
|
def __init__(self, function):
|
45
46
|
self.function = function
|
6
コード修正
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
"+": operator.add,
|
9
9
|
"-": operator.sub,
|
10
10
|
"*": operator.mul,
|
11
|
-
"/": operator.
|
11
|
+
"/": operator.floordiv
|
12
12
|
}
|
13
13
|
stack = []
|
14
14
|
it = iter(args)
|
5
演算子追加
answer
CHANGED
@@ -55,12 +55,18 @@
|
|
55
55
|
return self.function(value1, value2)
|
56
56
|
|
57
57
|
たす = Infix(lambda x,y: x+y)
|
58
|
+
ひく = Infix(lambda x,y: x-y)
|
59
|
+
かける = Infix(lambda x,y: x*y)
|
60
|
+
わる = Infix(lambda x,y: x//y)
|
58
61
|
|
59
62
|
a = 3
|
60
63
|
c = 1
|
61
64
|
print(a|たす|c)
|
62
65
|
|
63
66
|
# 4
|
67
|
+
|
68
|
+
print(a|たす|c|かける|2)
|
69
|
+
# 8
|
64
70
|
```
|
65
71
|
|
66
72
|
以上ご参考まで。
|
4
誤字修正
answer
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
ところで、Pythonではクラスを定義すれば演算子をオーバーライドすることができます。この機能を使って論理OR演算子の|をオーバーライドして、中置記法の演算子っぽいものを作った人がいます。
|
38
38
|
|
39
|
-
例えば"|
|
39
|
+
例えば"|たす|"と言う足算をする演算子っぽいものを定義してみます。
|
40
40
|
|
41
41
|
|
42
42
|
```Python3
|
@@ -54,11 +54,11 @@
|
|
54
54
|
def __call__(self, value1, value2):
|
55
55
|
return self.function(value1, value2)
|
56
56
|
|
57
|
-
|
57
|
+
たす = Infix(lambda x,y: x+y)
|
58
58
|
|
59
59
|
a = 3
|
60
60
|
c = 1
|
61
|
-
print(a|
|
61
|
+
print(a|たす|c)
|
62
62
|
|
63
63
|
# 4
|
64
64
|
```
|
3
誤字修正
answer
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
# 4
|
35
35
|
```
|
36
36
|
|
37
|
-
ところで、Pythonではクラスを定義すれば演算子をオーバーライドすることができます。この機能を使って論理OR演算子の|をオーバーライドして、中置記法の演算子っぽいものを作
|
37
|
+
ところで、Pythonではクラスを定義すれば演算子をオーバーライドすることができます。この機能を使って論理OR演算子の|をオーバーライドして、中置記法の演算子っぽいものを作った人がいます。
|
38
38
|
|
39
39
|
例えば"|と|"と言う足算をする演算子っぽいものを定義してみます。
|
40
40
|
|
2
誤字修正
answer
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
+は演算子で型はありません。またPythonでは演算子を新たに定義することもできません。一番見た目が近くなりそうなの
|
1
|
+
+は演算子で型はありません。またPythonでは演算子を新たに定義することもできません。一番見た目が近くなりそうなのは、+を文字列にすればこんな風に書けます。
|
2
2
|
|
3
3
|
```Python3
|
4
4
|
import operator
|
1
誤字修正
answer
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
ところで、Pythonではクラスを定義すれば演算子をオーバーライドすることができます。この機能を使って論理OR演算子の|をオーバーライドして、中置記法の演算子っぽいものを作るをった人がいます。
|
38
38
|
|
39
|
-
例えば"|と|"と言う足算をする演算子っぽいもを定義してみます。
|
39
|
+
例えば"|と|"と言う足算をする演算子っぽいものを定義してみます。
|
40
40
|
|
41
41
|
|
42
42
|
```Python3
|