当前位置:首页>开发>正文

python传入参数的问题 Python如何用列表向类传参急!在线等!

2023-07-30 00:18:20 互联网 未知 开发

 python传入参数的问题 Python如何用列表向类传参急!在线等!

python传入参数的问题

python在定义函数的时候,存在两种特殊定义,*和**的传值方式,正是因为这两种定义,python 函数的传值,非常灵活,在cpp编程的时候,不支持方法重载,因为没必要了。。。
在参数前面加个*号,表明这个函数会将这个变量代表的内容,转换为一个元祖,所以函数可以接收N个元素,这N个元素在函数里面转成一个元祖。比如这种
def fun1(*a):  #定义
    print(a)  #1输出
    print(*a)  #2输出
x = [1,2,3]
fun1(x)  #1调用
fun1(*x)  #2调用
fun(1,2,3)  #3调用因为fun1定义的时候,告诉函数,x可以接受N个对象,这个对象在函数里面会转成一个元祖保存,所以在1调用的时候,x在fun1函数里面会被当成一个元祖,但我们知道,x其实是一个元祖,1调用的时候,就传了一个对象进去。所以,结果如下
([1,2,3],)   #1输出
[1,2,3]     #2输出
为啥?1输出,清楚无误的告诉print(print也是函数,也支持*args方式传值),你直接把a对象打印出来,a对象是啥?一个包含1个对象的元祖,所以就是(x,)这样的结果。那2输出呢?2输出在调用的时候,在a对象前面已经拆解了元祖,所以,传给print函数的,是一个对象,就是x了。
同理,在2调用的时候,因为x对象被拆开,所以,func1被传入多个值,此时的a是一个元素和x相同的元祖。所以2调用的1输出,就是一个值,就是(1,2,3)。2输出,因为被拆解了再传给print,所以,print其实被传入了多个值,然后将这些值全部打印出来,所以结果是1,2,3.
那3调用呢?其实本质和2调用是一样的
那双星号呢?双星号是拆解key-val格式对的内容,在函数定义的时候,是默认讲传入的产生转为字典。而规律和上面说的单星号一致。如果用单星号去拆解key-val对象,只会拆解出key。后面的就不多说了。
为啥单引号拆解key-val对象,可以拆出key呢。。。源代码就这么执行的,为啥当初设计,理由是啥。。。不清楚。。

Python如何用列表向类传参?急!在线等!

无论是类的构造函数还是类的方法函数,都与普通函数一样可以使用列表传入多个实参。
class MyClass:
....def __init__(self:a,b,c):
........pass
对于MyClass,我们一般使用下列方式实例化:
x=MyClass(1,2,3)
如果我们实例化使用的参数在列表l中,可以这样做:
l=[1,2,3]
x=MyClass(*l)

python 命令行传参的几种方法

安装之后配置环境变量的步骤如下:
1,点“我的电脑”,右键选“属性”
2,选择:高级系统设置

3,选择:环境变量

4,在“系统变量”中选中“Path”

5,点“编辑”-再点“编辑文本”

6,在“变量值”一栏,把自己所安装的python路径拷进去就可以了,我安装的路径是“C:Python27”。
7,完成之后,一路点击确定关闭,就可以了。
8,这里要强调一下,现在下载的python都自带pip,pip在python目录下的Scripts目录下,添加到系统的path路径中就可以使用了。

Python 的函数是怎么传递参数的?

首先你要明白,Python的函数传递方式是赋值,而赋值是通过建立变量与对象的关联实现的。
对于你的代码:
执行 d = 2时,你在__main__里创建了d,并让它指向2这个整型对象。
执行函数add(d)过程中:
d被传递给add()函数后,在函数内部,num也指向了__main__中的但执行num = num 10之后,新建了对象12,并让num指向了这个新对象——12。
如果你明白函数中的局部变量与__main__中变量的区别,那么很显然,在__main__中,d仍在指着2这个对象,它没有改变。因此,你打印d时得到了2。
如果你想让输出为12,最简洁的办法是:
在函数add()里增加return num
调用函数时使用d = add(d)
代码如下:
def add(num):
num = return num
d = d = add(d)
print d

大神,python怎么实现把参数作为模块导入

场景介绍:
|--folder

--------|--do.py
--------|--aa/
--------|----|aa.dict

--------|--bob/
--------|----|bob.dict

想实现在终端执行:
./do.py aa
去读取aa.dict里的字典和变量

已经使用argparse读参数aa(同是目录名)

问题是import或importlib 导入aa时一直报str属性没法导入
可是用open把dict文件打开,读取其内容,用eval返回一个字典对象,详情可是查询手册api说明

的python程序 怎么调用以及传递参数

#!/usr/bin/env python
# coding: utf-#
import sys
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description=sum the integers at the command line)
parser.add_argument(
integers, metavar=int, nargs= , type=int,
help=an integer to be summed)
parser.add_argument(
--log, default=sys.stdout, type=argparse.FileType(w),
help=the file where the sum should be written)
args = parser.parse_args()
args.log.write(%s % sum(args.integers))
args.log.close()

python api 2个传参怎么做

Python 的函数传递参数:
Python 传参数可以理解为 C 的 const 指针(your_type* const your_variable),它所指向的对象可以被修改产生副作用,但变量本身不能修改指向其他对象。这个和 C 的 reference 差不多。
所以如果一定要产生 C 的修改指针指向其他对象的效果,用 list、dict 或其他自定义的 mutable 对象包装是一个办法,但我认为这样是一种不良实践。在 C 语言中用参数输出结果有非常多的理由:

C 语言没有 tuple,不能返回多值,除非声明一个 struct 类型。这种情况下划分 in 参数和 out 参数成为一种惯例

最新文章