回答編集履歴

4

説明補足

2020/06/06 13:07

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -4,7 +4,11 @@
4
4
 
5
5
 
6
6
 
7
- ただし、value に代入しているのは単なるリストなので、`return self.values @ other.values` の演算はできません。
7
+ ただし、value に代入しているのは単なるリストで `@`演算をサポートしていので、`return self.values @ other.values` の演算はできません。
8
+
9
+ 自分でリスト同士の内積計算処理を書く必要があります。
10
+
11
+
8
12
 
9
13
  ```python
10
14
 

3

動作確認コード追記

2020/06/06 13:07

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -17,3 +17,31 @@
17
17
  TypeError: unsupported operand type(s) for @: 'list' and 'list'
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ 動作確認するだけなら、こんなコードでもいけますよ。
24
+
25
+
26
+
27
+ ```python
28
+
29
+ >>> class Sample:
30
+
31
+ ... def __matmul__(self, other):
32
+
33
+ ... return "Hello, world!"
34
+
35
+ ...
36
+
37
+ >>> v1 = Sample()
38
+
39
+ >>> v1 @ 123
40
+
41
+ 'Hello, world!'
42
+
43
+ >>> v1 @ [1, 2, 3]
44
+
45
+ 'Hello, world!'
46
+
47
+ ```

2

コード追記

2020/06/06 12:42

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -5,3 +5,15 @@
5
5
 
6
6
 
7
7
  ただし、value に代入しているのは単なるリストなので、`return self.values @ other.values` の演算はできません。
8
+
9
+ ```python
10
+
11
+ >>> [1,2] @ [2,3]
12
+
13
+ Traceback (most recent call last):
14
+
15
+ File "<stdin>", line 1, in <module>
16
+
17
+ TypeError: unsupported operand type(s) for @: 'list' and 'list'
18
+
19
+ ```

1

追記

2020/06/06 12:30

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,7 @@
1
1
  `self.__values = ` で代入していて、`__value` には外部からアクセスするな! と自己主張しています。
2
2
 
3
3
  `self.value = ` にすれば `v1.value` や `v2.value` でアクセスできます。
4
+
5
+
6
+
7
+ ただし、value に代入しているのは単なるリストなので、`return self.values @ other.values` の演算はできません。