この方法で引数とキーワード引数を受け入れる必要があるメソッドを持つPythonクラスがあります
class plot:
def __init__(self, x, y):
self.x = x
self.y = y
def set_axis(self, *args, xlabel="x", ylabel="y", **kwargs):
for arg in args:
<do something>
for key in kwargs:
<do somethng else>
電話するとき:
plt = plot(x, y)
plt.set_axis("test1", "test2", xlabel="new_x", my_kwarg="test3")
エラーが発生します:TypeError: set_axis() got multiple values for keyword argument 'xlabel'
とにかく私が私の方法を次のように設定した場合
class plot:
def __init__(self, x, y):
self.x = x
self.y = y
def set_axis(self, xlabel="x", ylabel="y", *args, **kwargs):
for arg in args:
<do something>
for key in kwargs:
<do somethng else>
と電話:
plt = plot(x, y)
plt.set_axis(xlabel="new_x", "test1", "test2", my_kwarg="test3")
SyntaxError: non-keyword arg after keyword arg
期待通りになりました。最初のケースの何が問題になっていますか?デフォルト以外のユーザー引数とキーワード引数を受け入れるようにメソッドに指示するにはどうすればよいですか?(私の質問が十分に明確であることを願っています)