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

回答編集履歴

2

fix example code

2020/10/01 16:57

投稿

YufanLou
YufanLou

スコア466

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  def __init__(self, name, age):
10
10
  self.name = name
11
11
  self.age = age
12
- def __str__():
12
+ def __str__(self):
13
13
  return f'PersonA(name={self.name}, age={self.age})'
14
14
 
15
15
  a = PersonA('太郎', 10)
@@ -24,9 +24,9 @@
24
24
  def __init__(self, name, age):
25
25
  self.name = name
26
26
  self.age = age
27
- def __str__():
27
+ def __str__(self):
28
28
  return f'PersonA(name={self.name}, age={self.age})'
29
- def pretty_str():
29
+ def pretty_str(self):
30
30
  return f'{self.name}は{self.age}歳です'
31
31
 
32
32
  a = PersonA('太郎', 10)
@@ -51,4 +51,6 @@
51
51
  # 太郎は10歳です
52
52
  ```
53
53
 
54
- どの方法を使うか人やプロジェクトそれぞれです。自分で色々試してください!
54
+ どの方法を使うか人やプロジェクトそれぞれです。自分で色々試してください!
55
+
56
+ Update: コード例を修正しました。

1

add usage

2020/10/01 16:57

投稿

YufanLou
YufanLou

スコア466

answer CHANGED
@@ -7,10 +7,14 @@
7
7
  ```python
8
8
  class PersonA:
9
9
  def __init__(self, name, age):
10
- self._name = name
10
+ self.name = name
11
- self._age = age
11
+ self.age = age
12
12
  def __str__():
13
- return f'PersonA(_name={self._name}, _age={self._age})'
13
+ return f'PersonA(name={self.name}, age={self.age})'
14
+
15
+ a = PersonA('太郎', 10)
16
+ print(a)
17
+ # PersonA(name='太郎', age=10)
14
18
  ```
15
19
 
16
20
  でも他の文字表示はどうする?方法は二つ。一つ目は別のメソッドで定義する:
@@ -18,12 +22,18 @@
18
22
  ```python
19
23
  class PersonA:
20
24
  def __init__(self, name, age):
21
- self._name = name
25
+ self.name = name
22
- self._age = age
26
+ self.age = age
23
27
  def __str__():
24
- return f'PersonA(_name={self._name}, _age={self._age})'
28
+ return f'PersonA(name={self.name}, age={self.age})'
25
29
  def pretty_str():
26
- return f'{self._name}は{self._age}歳です'
30
+ return f'{self.name}は{self.age}歳です'
31
+
32
+ a = PersonA('太郎', 10)
33
+ print(a)
34
+ # PersonA(name='太郎', age=10)
35
+ print(a.pretty_str())
36
+ # 太郎は10歳です
27
37
  ```
28
38
 
29
39
  二つ目は問題文のように、別のクラスで定義する:
@@ -31,7 +41,14 @@
31
41
  ```python
32
42
  class PersonAPrettier(PersonA):
33
43
  def __str__():
34
- return f'{self._name}は{self._age}歳です'
44
+ return f'{self.name}は{self.age}歳です'
45
+
46
+ a = PersonA('太郎', 10)
47
+ print(a)
48
+ # PersonA(name='太郎', age=10)
49
+ ap = PersonAPrettier(a)
50
+ print(ap)
51
+ # 太郎は10歳です
35
52
  ```
36
53
 
37
54
  どの方法を使うか人やプロジェクトそれぞれです。自分で色々試してください!