python 中的魔法变量

时间: 2023-12-21 admin IT培训

python 中的魔法变量

python 中的魔法变量

1: 魔法变量 *arg ,**args 主要用于我们的函数参数,也可以用于分割列表 *arg 是用来发送一个非键值对的可变数量的参数列表给一个函数. **args 允许你将不定长度的 键值对 , 作为参数传递给一个函数
使用顺序: some_func(fargs, *args, **kwargs)
举列 args=('one',32,2) argss={"arg3":"3","arg1":1,"arg2":"two"} dicts ={ "name":"瑾", "sex":"男", "age":20 } arg = [1,2,3,4,5,6,7,8,9]
# 魔法变量放入我们调用参数 def fun(arg1,arg2,arg3): print("agr1", arg1) print("agr2", arg2) print("agr3", arg3)
# 魔法变量放入函数参数 def funs(arg,*args): print("第一个参数是",arg) print(args) for a in args: print("*arg中的参数是:",a)
# 正常顺序 def funss(arg,*args, **kwargs): print(arg) print(*args) for k,v in kwargs.items(): print("**argss中的参数是:{0}:{1}".format(k,v))
# 只放入 **kwargs def funkwargs(**kwargs): print(kwargs) for k,v in kwargs.items(): print("**argss中的参数是:{0}=={1}".format(k,v))
# 使用*arg fun(*args) 》》》agr1 one agr2 32 agr3 2

# 使用**agrs fun(**argss) 》》》agr1 1 agr2 two agr3 3
funs(1,2,23,44) >>>第一个参数是 1 (2, 23, 44) *arg中的参数是: 2 *arg中的参数是: 23 *arg中的参数是: 44

funs(2,arg) >>>第一个参数是 2 ([1, 2, 3, 4, 5, 6, 7, 8, 9],)
funss(1,args,dicts) >>>*arg中的参数是: [1, 2, 3, 4, 5, 6, 7, 8, 9] 1 ('one', 32, 2) {'name': '瑾', 'sex': '男', 'age': 20}

funkwargs(name="abaf",age=10) # 这里有个坑 不能直接传入我们的dict funkwargs(dicts) >>>{'name': 'abaf', 'age': 10} **argss中的参数是:name==abaf **argss中的参数是:age==10

funkwargs(**dicts) >>>{'name': '瑾', 'sex': '男', 'age': 20} **argss中的参数是:name==瑾 **argss中的参数是:sex==男 **argss中的参数是:age==20
print("我是华丽的分割线---------------------------------------------")
list=[1,2,3,4,5,"c#","python","admin"] 苦逼的 好像忘记了怎么用*来分割list列表了 晚上回去翻翻
代码复制过来到这里缩进有问题啊



# 猴子补丁 # 利用了python中的名字空间是开放的 # 通过了dict来实现
# 导入一个module # 将module对象加入到sys.modules,后续对该module的导入将直接从该dict中获得 # 将module对象加入到globals dict中 # 可以来换模块,更新什么的
class foo(): def bar(self): print("foo.bar")
def bar(self): print("更新模块")
print("这是替换前的") foo().bar() foo.bar=bar print("这是替换后的") foo().bar()

》》》