python2与python3的函数参数与类参数不同之处
python参数以及 python2与python3的函数参数与类参数不同之处
前言
鉴于python3与python2有些不同,看到某些代码时可能会感到疑惑,就稍微记录一下。
一.不限制个数的函数参数
1.*args
以此为参数,会被python解释器默认为元组参数,将输入的若干个参数组织成元组类型。
def test_args(*args):#元组类型,tuple参数(*args)
print(args)
print(type(args))
sum = 0
for i in args:
sum+=i
return sum
test_args(1,2,3)
(1, 2, 3)
<class 'tuple'>
6
2.**kwargs
以此为参数会被解释为字典参数,自动将其中输入的若干个"key = value"参数组织成字典的形式:
#字典类型,dict参数(**kwargs)
def PrintDict(**kwargs):
print(kwargs)
print(type(kwargs))
for key, value in kwargs.items():#items()用于字典
print(f'{key}:{value}')
PrintDict(a=1, b=2, c=3, d=4)
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
<class 'dict'>
a:1
b:2
c:3
d:4
二.关于类继承的参数
1.class后的括号
class T1:
def __init__(self):
print("T1")
class T2():
def __init__(self):
print("T2")
T1(),T2()
上述两种类的意义相同,都能成功创建一个简单的类
T1
T2
(<main.T1 at 0x7fb201ad64f0>, <main.T2 at 0x7fb201ad6910>)
当然如果需要使用继承,则必须使用括号
2.super函数的参数
使用super函数进行初始化时有两种初始化方法
super().__init__()
super(inheritName, self).__init__()
其中inheritName是使用此类的名字:
class A(Base):
def __init__(self):
super(A, self).__init__()
#等价于super().__init__()
石中之火,即使无可燃烧之物,也要尽力发亮
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)