Python Ruby将数字作为键(键值)传递给**kwargs
如何将数字作为键(键值)传递给**kwargs?换句话说,为什么不能将数字作为键(键值)传递给**kwargs?以下是错误: 编辑:Python Ruby将数字作为键(键值)传递给**kwargs,python,ruby,Python,Ruby,如何将数字作为键(键值)传递给**kwargs?换句话说,为什么不能将数字作为键(键值)传递给**kwargs?以下是错误: 编辑: def func(**kwargs) puts kwargs.class p kwargs end func(a={:alpha => 1, :beta => 2, :gamma => 3}) # wrong number of arguments (1 for 0) (ArgumentError) func(n = {1 => 'a
def func(**kwargs)
puts kwargs.class
p kwargs
end
func(a={:alpha => 1, :beta => 2, :gamma => 3})
# wrong number of arguments (1 for 0) (ArgumentError)
func(n = {1 => 'alpha', 2 => 'beta', 3 => 'gamma'})
在Python中,这将起作用:
def func(**kwargs):
print(type(kwargs).__name__)
print(kwargs)
func(a={'alpha': 1, 'beta': 2, 'gamma': 3})
func(n = {1: 'alpha', 2: 'beta', 3: 'gamma'})
请帮忙 kwargs的意思是:KeywordArguments 在ruby的情况下,您只能传递一个符号作为键。(如果还有其他问题,请纠正我) 这样的事情是行不通的:
func("a" => "foo")
func(1 => "bar")
func(Object.new => "baz")
这些都将创建一个散列并将其作为第一个位置参数传递给函数。但是您的方法没有任何位置参数。因此出现了错误
您只能使用:
func(a: "this")
func(whatever: Object.new)
kwargs的意思是:KeywordArguments 在ruby的情况下,您只能传递一个符号作为键。(如果还有其他问题,请纠正我) 这样的事情是行不通的:
func("a" => "foo")
func(1 => "bar")
func(Object.new => "baz")
这些都将创建一个散列并将其作为第一个位置参数传递给函数。但是您的方法没有任何位置参数。因此出现了错误
您只能使用:
func(a: "this")
func(whatever: Object.new)
进一步改进:)事实上,你的答案更好。:)进一步改进:)事实上,你的答案更好。:)