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

回答編集履歴

1

修正

2018/02/18 04:32

投稿

karamarimo
karamarimo

スコア2555

answer CHANGED
@@ -3,16 +3,15 @@
3
3
  これはどのようにしたら実現できるでしょうか。
4
4
 
5
5
  メソッドにて自身の値を変更するのではなく、新しいインスタンスを返せばいいです。
6
- ただメソッド内で直接`HTMLTag(...)`でインスタンスを作ることはできない(`HTMLTag`という名前がその定義内では使えない)ので、`self.__class__`によってクラスを取得する必要があります。
7
6
 
8
7
  ```
9
8
  class HtmlTag():
10
9
  def __init__(self,text):
11
10
  self.value = text
12
11
  def p(self):
13
- return self.__class__("<p>{}</p>".format(self.value))
12
+ return HtmlTag("<p>{}</p>".format(self.value))
14
13
  def b(self):
15
- return self.__class__("<b>{}</b>".format(self.value))
14
+ return HtmlTag("<b>{}</b>".format(self.value))
16
15
 
17
16
 
18
17
  H=HtmlTag("hello")