python指针参数学习笔记

目录

接收参数为指针时,可以传多个参数,list会转成tuple

指针会把元组转成多个参数,代码示例

懒人必备,统一接收可变长参数:

接收参数为变量,调用传变量 ok

接收参数为变量,调用传指针,list参数会拆成多个参数

参数是列表:

接收用指针,调用遍历,报错'tuple' object has no attribute 'append'

接收参数为指针时,参数list会转tuple,不可更改。

接收参数为变量,调用参数为指针时,list会拆成多个变量:


接收参数为指针时,可以传多个参数,list会转成tuple

def calc(*nums):
    sum = 0
    for n in nums:
        sum += n

    return sum

data=calc(1,2,3)
print(data)

指针会把元组转成多个参数,代码示例

call中fo_args是元组,转成了多个参数:aaa运行不报错: 

回调函数也是可以的:

def aaa(a,b,c,d ):

    print(a,b,c,d)

def get_fun():
    return aaa


def call(fo_args):

    aaa(1,*fo_args)

if __name__ == '__main__':

    ddd=1,2,3,4
    call((12,35,35))


    fun_a=get_fun()

    fun_a(*(2,12,35,35))

懒人必备,统一接收可变长参数:

param是可变长参数,

def add_a(a,*param):

    print(a,param)
    a,b=param

if __name__ == '__main__':

    add_a(1,2,"asf")

接收参数为变量,调用传变量 ok

import torch
class A:
    def aaa(self,inputs,bb=False):

        print(inputs,bb)
        a,b=inputs

inputs = torch.randn(1, 3, 128, 128)
bbb=A()
data=[355,123135]
aaa=str(type(data))
bbb.aaa(data)

接收参数为变量,调用传指针,list参数会拆成多个参数

import torch
class A:
    def aaa(self,inputs,bb=False):
        print(inputs,bb)
        a,b=inputs

inputs = torch.randn(1, 3, 128, 128)
bbb=A()
data=[355,123135]

bbb.aaa(*data)

参数是列表:

def add_end(l = []):
    l.append('END')
    return l
data= add_end([2])
print(data)

结果:

[2, 'END']

接收用指针,调用遍历,报错'tuple' object has no attribute 'append'

def add_end(*data):
    print('param',data)
    data.append('END')
    return data
data= add_end([2])
print(data)

接收参数为指针时,参数list会转tuple,不可更改。

def add_end(*data):
    print('param',data)
    data.append('END')
    return data

param=[2]
data= add_end(*param)
print(data)

结果:

报错'tuple' object has no attribute 'append'

接收参数为变量,调用参数为指针时,list会拆成多个变量:

def add_end(data):
    print('param',data)
    data.append('END')
    return data

param=[2,2]
data= add_end(*param)
print(data)

结果:

  File "F:/project/cls/NonDeepNetworks/aaa.py", line 10, in <module>
    data= add_end(*param)
TypeError: add_end() takes 1 positional argument but 2 were given

猜你喜欢

转载自blog.csdn.net/jacke121/article/details/126595204