【问题标题】:Passing multiple strings to a function and appending to list将多个字符串传递给函数并附加到列表
【发布时间】:2022-01-15 10:46:26
【问题描述】:
class Dog:
   tricks = []
   def __init__(self,name):
     self.name=name
   def add_tricks(self, trick ):
     self.tricks.extend(trick)

我不断收到 add_tricks 只接受 1 个位置参数但给出了 3 个的错误消息。我尝试将 **kwargs 传递给该函数,但这也不起作用。如何将多个字符串传递给函数?

【问题讨论】:

    标签: python class oop keyword-argument


    【解决方案1】:

    For (*args) parameters as ("Hello","Byy")

    class Dog:
       tricks = []
       def __init__(self,name):
         self.name=name
       def add_tricks(self, *trick):
         self.tricks.extend(trick)
    

    For (**kwargs) parameters as (a="Hello",b="Byy")

    class Dog:
       tricks = []
       def __init__(self,name):
         self.name=name
       def add_tricks(self, **trick):
         self.tricks.extend(trick)
    

    Or if you want to give string in both types like (a="Hello","byy")

    class Dog:
       tricks = []
       def __init__(self,name):
         self.name=name
       def add_tricks(self, *trick1,**trick2):
         self.tricks.extend(trick)
         self.tricks.extend(trick2)
    

    【讨论】:

    • 所以当我使用 *args 方法时它可以工作,但使用 **kwargs 会产生错误,就像在你的第二个代码中一样。 “add_tricks() 接受 1 个位置参数,但给出了 3 个”
    • 你可以给出这样的字符串("Hello","byyy")或者你可以给出这样的字符串(a = "Hello",b="byyy")
    • a = Dog("bruno") a.add_tricks("fetch", "roll") 这就是我要添加的内容
    • 使用第一种方法。
    • 或者如果你想给出这样的参数 a.add_tricks("fetch", a="roll")
    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2015-09-06
    相关资源
    最近更新 更多