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()


》》》




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值