666999666999 发表于 2025-7-11 15:07:19

我的python版本是3.12为什么不支持关键字参数啊

比如说以下代码
x = "伍六七"
x.center(9,fillchar = "&")

运行后会报错,错误提示
str().center() takes no keyword arguments
请问各位大佬这是什么情况
{:10_292:}

FishC 发表于 2025-7-11 15:09:01

你的问题在于Python内置的字符串方法 `center()` 不支持关键字参数。这是Python设计上的限制,与版本无关(包括Python 3.12)。你需要用位置参数传递值:

正确写法:

x = "伍六七"
result = x.center(9, "&")# 不要写 fillchar="&"
print(result)


错误原因:

[*] `str.center()` 是Python内置方法,底层由C语言实现
[*] 这类方法通常不接受关键字参数(如 `fillchar="&"`),只支持位置参数
[*] 错误提示 `takes no keyword arguments` 明确指出了这一点


其他替代方案:
如果一定要用关键字参数,可以封装成函数:

def my_center(s, width, fillchar=" "):
    return s.center(width, fillchar)

result = my_center(x, 9, fillchar="&")


注意:所有字符串方法(如 `strip()`, `replace()` 等)都存在此限制,使用时都需用位置参数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2025-7-11 16:27:20

因为有的函数本来就只能用位置参数,你也可以搜索学习如何写出

666999666999 发表于 2025-7-11 16:44:09

某一个“天” 发表于 2025-7-11 16:27
因为有的函数本来就只能用位置参数,你也可以搜索学习如何写出

好的,非常感谢{:13_459:}

921139987 发表于 2025-7-11 23:34:29

{:10_297:}

sfqxx 发表于 2025-7-12 08:52:17

看看

ydwb 发表于 2025-7-12 14:47:30

str.center() 方法在 Python 中用于将字符串居中,并使用指定的字符(默认为空格)填充至指定的总宽度。
页: [1]
查看完整版本: 我的python版本是3.12为什么不支持关键字参数啊