标签: arguments

python类属性不能用作构造函数的参数?

在python 3中,我发现class属性可以在__init__()函数中用作参数,如下所示:

file test.py:

class Foo:
    var1 = 23333
    def __init__(self, var=var1):
        self.var = var
Run Code Online (Sandbox Code Playgroud)

在cmd中运行:

C:\Users\rikka\Desktop>py -3 -i test.py
>>> f1=Foo()
>>> f1.var
23333
Run Code Online (Sandbox Code Playgroud)

但是通过使用dot.expression,当init这个类时,解释器将报告错误:

文件test2.py:

class Foo:
    var1 = 23333
    def __init__(self, var=Foo.var1):
       self.var = var
Run Code Online (Sandbox Code Playgroud)

在cmd中运行:

C:\Users\rikka\Desktop>py -3 -i test2.py
Traceback (most recent call last):
  File "test2.py", line 1, in <module>
    class Foo:
  File "test2.py", line 3, in Foo
    def __init__(self, var=Foo.var1):
NameError: name 'Foo' is not defined
Run Code Online (Sandbox Code Playgroud)

我只是不知道为什么解释器找不到名字'Foo',因为Foo是环境中全局框架中的名字.有什么关于python类的范围相关的概念,我不完全理解?

python constructor arguments class class-attributes

0
推荐指数
1
解决办法
86
查看次数

for循环不使用JavaScript函数的参数

我正在尝试在server.js文件中运行此函数:

function formatArr (targetArr, characteristic, formattedArr) {
    console.log(characteristic);
    for (var i = 0; i < targetArr.length; i++) {
        formattedArr.push({characteristic:targetArr[i]})
    };
    return formattedArr;
};
Run Code Online (Sandbox Code Playgroud)

如果我这样称呼它:

var targetSize = Object.keys(JSON.parse(req.query.size)); //[s,m,l]
var sizeKey = "size";
// format size array for mongodb query 
var formattedSize = [];
var formattedSize = formatArr(targetSize, sizeKey, formattedSize);
console.log(formattedSize);
Run Code Online (Sandbox Code Playgroud)

它是控制台日志"大小",但它不会用formattedSize数组中的字大小替换字特征.这是我在服务器控制台中获得的内容:

size
[ { characteristic: 's' },{ characteristic: 'm' },{ characteristic: 'l' } ]
Run Code Online (Sandbox Code Playgroud)

如何在阵列中使用大小替换特征?这是我想要的输出:

size
[ { size: 's' },{ size: 'm' },{ size: 'l' } ]
Run Code Online (Sandbox Code Playgroud)

我希望能够重用formatArr函数和其他特性.

javascript parameters arguments for-loop function

0
推荐指数
1
解决办法
33
查看次数

使用变量中的字典作为函数的一组参数

我需要一个简单的方法来将所需的参数传递给一个接受多个参数的函数.

def sample1(arg1=0,arg2=0,arg3=0 ... ...  argn=0)
Run Code Online (Sandbox Code Playgroud)

参数词典

argument_dictionary={'arg1':0,'arg4':1}
Run Code Online (Sandbox Code Playgroud)

我想遍历argument_dictionary并仅将arg1和arg4传递给sample1 as

sample1(arg1=0,arg4=1)
Run Code Online (Sandbox Code Playgroud)

python arguments function

0
推荐指数
1
解决办法
49
查看次数

如何循环参数java?

我必须创建大量文件来保存不同对象的输出,我想知道是否有一种简单的方法使用循环,而不是每次都输入整个东西.目前,我这样做,很快变得笨拙:

public void createFile(String fn, String fn1, String fn2, String fn3, String fn4, String fn5, String fn6){
    java.io.File filei = new java.io.File("fn.txt" );       
    java.io.PrintWriter earth1 = new PrintWriter(file);
    java.io.File file1 = new java.io.File("fn1.txt" );
    java.io.PrintWriter sun1 = new PrintWriter(file1);
    java.io.File file2 = new java.io.File("fn2.txt" );
    java.io.PrintWriter mercury1 = new PrintWriter(file2);
    java.io.File file3 = new java.io.File("fn3.txt" );
    ...etc
}
Run Code Online (Sandbox Code Playgroud)

因此,手动写出新文件的行.字符串fn的值为earth,fn1将为sun,fn2 mercury等.我想理想地使用for循环,但不知道如何循环参数!例如,我需要一种方法来创建一个循环来重新创建这个模式:

java.io.File filei = new java.io.File("fn.txt");
java.io.PrintWriter fn1 = new PrintWriter(filei);

java.io.File filei = new java.io.File("fn1.txt");
java.io.PrintWriter (fn1)1 = new PrintWriter(filei); …
Run Code Online (Sandbox Code Playgroud)

java arguments loops

0
推荐指数
1
解决办法
2868
查看次数

Python如何以不同方式接收stdin和参数?

Python究竟是如何接收的

echo input | python script
Run Code Online (Sandbox Code Playgroud)

python script input
Run Code Online (Sandbox Code Playgroud)

不同?我知道一个是通过stdin来的,另一个是作为一个参数传递的,但是在后端会发生什么不同?

python stdin arguments

0
推荐指数
1
解决办法
585
查看次数

va_list c ++有问题

我只是想用一个可变数量的参数编写一个非常简单的函数,所以我可以为一个赋值编写一个类似于printf的函数.看完文档之后,va_list我不确定为什么这段代码会一直给我运行时错误:

在此输入图像描述

这是我的代码:

void print(string sOne , ...);
void main()
{
    print("first string", "second string", "third String");
    system("pause");
}

void print(string sOne , ...)
{
    va_list arguments;
    va_start(arguments, sOne);
     while ((va_arg(arguments, int)) != 0)
    {
        string printString = va_arg(arguments, string);
        cout << printString;
    }
    va_end(arguments);
}
Run Code Online (Sandbox Code Playgroud)

c++ arguments variadic-functions variable-assignment

0
推荐指数
1
解决办法
1558
查看次数

Java循环通过命令行参数来查看用户输入的内容?

我偶然发现了这个问题:

编写一个完整的Java程序command.java,它以相反的顺序打印出所有命令行参数,每个参数都在一个单独的行上.它可以有任意多个命令行参数.例如,java command az ba cad会输出

dac
ab
za
Run Code Online (Sandbox Code Playgroud)

我不是要求吃勺子的答案,但这里有一些我已经想到的想法:

1)一旦我将每一行分配到一个String变量中,可以通过StringBuilder完成反转字符串

但是,我遇到的问题是我是否能够遍历"命令行"本身,因为它要求"任意多的命令行",这意味着我无法使用For循环,因为我没有知道范围,但我可以使用while循环吗?如果是这样,怎么样?谢谢.

java reverse command arguments line

0
推荐指数
1
解决办法
3106
查看次数

忽略Matlab输入参数

我有一个功能:

function myself(a,b,c,d)
Run Code Online (Sandbox Code Playgroud)

我想在代码中使用此函数只提供参数ab.我想忽略论点cd.

这该怎么做?谢谢.

matlab arguments function

0
推荐指数
1
解决办法
312
查看次数

在一个函数中使用*arg和可选参数

我怎样才能将*arg和变量与defaull值一起使用?

def my_fun(a, b = True, *arg):
    print (a)
    print (b)
    print (arg)

my_fun(1,2,3)
Run Code Online (Sandbox Code Playgroud)

我想得到的是

1
True
(2,3,)
Run Code Online (Sandbox Code Playgroud)

我得到的是

1
2
(3)
Run Code Online (Sandbox Code Playgroud)

python arguments

0
推荐指数
1
解决办法
69
查看次数

cat` -q`文件(在linux中) - 传递看起来像选项的操作数

我有一个名字的文件-q(看起来这是偶然的)

我想看看它的内容,所以我尝试了这些

$ cat '-q'
$ cat "-q"
$ cat $'-q'
Run Code Online (Sandbox Code Playgroud)

但没有任何效果.(所有给出相同的错误cat: invalid option -- 'q')

有没有办法看到它的内容?

linux bash arguments options operands

0
推荐指数
1
解决办法
146
查看次数