回答編集履歴

3

追記

2018/05/02 06:46

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -23,6 +23,10 @@
23
23
  0. argsには各属性が結び付いているので、args.funcはhoge
24
24
 
25
25
  0. 引数にargsを指定しているのは現時点では無意味だと思う
26
+
27
+
28
+
29
+ `args.func is hoge`の真偽を見れば、二つが同一のオブジェクトを指していることが分かります。
26
30
 
27
31
 
28
32
 

2

追記

2018/05/02 06:46

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -23,3 +23,75 @@
23
23
  0. argsには各属性が結び付いているので、args.funcはhoge
24
24
 
25
25
  0. 引数にargsを指定しているのは現時点では無意味だと思う
26
+
27
+
28
+
29
+ コメントを受けて
30
+
31
+ ---
32
+
33
+ 『結び付ける』処理自体は簡単に書けます。
34
+
35
+ ```Python
36
+
37
+ class MyClass:
38
+
39
+ def set_default(self, **kwargs):
40
+
41
+ for key, value in kwargs.items():
42
+
43
+ setattr(self, key, value)
44
+
45
+
46
+
47
+ def spam():
48
+
49
+ print('spam')
50
+
51
+
52
+
53
+ def ham():
54
+
55
+ print('ham')
56
+
57
+
58
+
59
+ def egg():
60
+
61
+ print('egg')
62
+
63
+
64
+
65
+ obj = MyClass()
66
+
67
+ obj.set_default(f_spam=spam, f_ham=ham, f_egg=egg)
68
+
69
+
70
+
71
+ obj.f_spam()
72
+
73
+ obj.f_ham()
74
+
75
+ obj.f_egg()
76
+
77
+ ```
78
+
79
+
80
+
81
+ **実行結果** [Wandbox](https://wandbox.org/permlink/XnYdivpaqB7zltoE)
82
+
83
+ ```
84
+
85
+ spam
86
+
87
+ ham
88
+
89
+ egg
90
+
91
+ ```
92
+
93
+
94
+
95
+ こんな風に`set_default`を用いて属性を結び付けているのかと。
96
+
97
+ 実際にはもっともっと複雑でしょうが、動作自体に違和感はありません。

1

修正

2018/05/02 06:42

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -22,4 +22,4 @@
22
22
 
23
23
  0. argsには各属性が結び付いているので、args.funcはhoge
24
24
 
25
- 0. 引数にargsを指定しているのは無意味だと思う
25
+ 0. 引数にargsを指定しているのは現時点では無意味だと思う