回答編集履歴

1

追加

2021/07/30 12:22

投稿

ppaul
ppaul

スコア24666

test CHANGED
@@ -21,3 +21,113 @@
21
21
  print(c.a) #この値を1にしたいのですか、2にしたいのですか?
22
22
 
23
23
  ```
24
+
25
+
26
+
27
+ 2にしたいのですね。
28
+
29
+
30
+
31
+ 出来るか出来ないかというと出来ますが、クラスの使い方として普通はそういうことをやらないようにするでしょう。
32
+
33
+
34
+
35
+ お勧めでない方法
36
+
37
+
38
+
39
+ ```python
40
+
41
+ >>> class parent():
42
+
43
+ ... def __init__(self,a=None):
44
+
45
+ ... parent.a=a
46
+
47
+ ...
48
+
49
+ >>> class child(parent):
50
+
51
+ ... def __init__(self):
52
+
53
+ ... pass
54
+
55
+ ... def pri(self):
56
+
57
+ ... print(self.a)
58
+
59
+ ...
60
+
61
+ >>> p1=parent(1)
62
+
63
+ >>> print(p1.a) #1
64
+
65
+ 1
66
+
67
+ >>> p2=parent(2)
68
+
69
+ >>> print(p2.a) #2
70
+
71
+ 2
72
+
73
+ >>> c=child()
74
+
75
+ >>> c.pri() #この値は1にしたいのですか、2にしたいのですか?
76
+
77
+ 2
78
+
79
+ >>> print(c.a) #この値を1にしたいのですか、2にしたいのですか?
80
+
81
+ 2
82
+
83
+ ```
84
+
85
+
86
+
87
+ 普通やる方法
88
+
89
+
90
+
91
+ ```python
92
+
93
+ >>> class parent():
94
+
95
+ ... @classmethod
96
+
97
+ ... def set_a(self,a):
98
+
99
+ ... parent.a=a
100
+
101
+ ...
102
+
103
+ >>> class child(parent):
104
+
105
+ ... def pri(self):
106
+
107
+ ... print(self.a)
108
+
109
+ ...
110
+
111
+ >>> parent.set_a(1)
112
+
113
+ >>> print(parent.a) #1
114
+
115
+ 1
116
+
117
+ >>> parent.set_a(2)
118
+
119
+ >>> print(parent.a) #2
120
+
121
+ 2
122
+
123
+ >>> c=child()
124
+
125
+ >>> c.pri() #この値は1にしたいのですか、2にしたいのですか?
126
+
127
+ 2
128
+
129
+ >>> print(c.a) #この値を1にしたいのですか、2にしたいのですか?
130
+
131
+ 2
132
+
133
+ ```