目录
TypeError: str.replace() takes no keyword arguments (Python)
- TypeError:X 在 Python 中没有关键字参数
- TypeError: str.replace() 在 Python 中没有关键字参数
- TypeError: dict.get() 在 Python 中没有关键字参数
TypeError: X 在 Python 中没有关键字参数
当我们将关键字参数传递给仅采用位置参数的函数时,会出现 Python“TypeError: X takes no keyword arguments”。
要解决错误,请将位置参数传递给函数。
def get_name(first, last): return first + ' ' + last # ⛔️ calling the function with keyword arguments print(get_name(first='bobby', last='hadz')) # ✅ calling the function with positional arguments print(get_name('bobby', 'hadz'))
函数的第一次调用get_name
使用关键字参数,第二次调用使用位置参数。
关键字参数采用 的形式argument_name=value
,位置参数直接按值传递。
get_name
示例中的函数可以两种方式调用而不会出现任何问题。
相反,您应该将位置参数传递给这些方法。
这里有 2 个示例,说明错误是如何使用内置方法发生的以及如何解决它。
目录
TypeError: str.replace() 在 Python 中没有关键字参数
当我们将关键字参数传递给方法时,会发生“TypeError: str.replace() takes no keyword arguments” str.replace()
。
要解决该错误,请仅将位置参数传递给replace()
,例如
my_str.replace('old', 'new')
。
下面是错误如何发生的示例。
my_str = 'apple, apple, banana' # ⛔️ TypeError: str.replace() takes no keyword arguments result = my_str.replace(old='apple', new='kiwi')
错误是因为我们将关键字参数传递给该replace()
方法而引起的。
该replace()
方法只接受位置参数。
my_str = 'apple, apple, banana' result = my_str.replace('apple', 'kiwi') print(result) # 👉️ kiwi, kiwi, banana
str.replace方法返回字符串的副本,其中所有出现的子字符串都被提供的替换项替换。
该方法采用以下参数:
姓名 | 描述 |
---|---|
老的 | 字符串中我们要替换的子串 |
新的 | 每次出现的替换old |
数数 | count 只替换第一次出现的(可选) |
请注意,该方法不会更改原始字符串。字符串在 Python 中是不可变的。
如果在替换字符串中的字符时需要使用正则表达式,请使用re.sub
方法。
import re my_str = '1apple, 2apple, 3banana' result = re.sub(r'[0-9]', '_', my_str) print(result) # 👉️ _apple, _apple, _banana
该re.sub
方法返回一个新字符串,该字符串是通过使用提供的替换替换模式的出现而获得的。
如果未找到模式,则按原样返回字符串。
TypeError: dict.get() 在 Python 中没有关键字参数
当我们将关键字参数传递给方法时,会发生“TypeError: dict.get() takes no keyword arguments” dict.get()
。
要解决该错误,只需将位置参数传递给dict.get()
,例如
my_dict.get('my_key', 'default')
。
下面是错误如何发生的示例。
my_dict = {'name': 'Bobby Hadz', 'age': 30} # ⛔️ TypeError: dict.get() takes no keyword arguments result = my_dict.get('name', default='')
错误是因为我们向该dict.get()
方法传递了一个关键字参数。
该dict.get()
方法只接受位置参数。
my_dict = {'name': 'Bobby Hadz', 'age': 30} print(my_dict.get('name', '')) # 👉️ "Alice" print(my_dict.get('another', 'default')) # 👉️ 'default'
如果键在字典中,则 dict.get 方法返回给定键的值,否则返回默认值。
该方法采用以下 2 个参数:
姓名 | 描述 |
---|---|
钥匙 | 返回值的键 |
默认 | 如果字典中不存在提供的键,则返回默认值(可选) |
default
如果未提供参数值,则默认为None
,因此该get()
方法永远不会引发. KeyError
该方法采用的两个参数dict.get()
都是位置参数。
您不能将关键字参数传递给该方法。
如果提供的键存在于dict
对象中,则返回其值,否则,该get()
方法返回提供的default
值,或者None
如果在调用时未提供值dict.get()
。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: