在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类的范围相关的概念,我不完全理解?
我正在尝试在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函数和其他特性.
我需要一个简单的方法来将所需的参数传递给一个接受多个参数的函数.
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) 我必须创建大量文件来保存不同对象的输出,我想知道是否有一种简单的方法使用循环,而不是每次都输入整个东西.目前,我这样做,很快变得笨拙:
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) Python究竟是如何接收的
echo input | python script
Run Code Online (Sandbox Code Playgroud)
和
python script input
Run Code Online (Sandbox Code Playgroud)
不同?我知道一个是通过stdin来的,另一个是作为一个参数传递的,但是在后端会发生什么不同?
我只是想用一个可变数量的参数编写一个非常简单的函数,所以我可以为一个赋值编写一个类似于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) 我偶然发现了这个问题:
编写一个完整的Java程序command.java,它以相反的顺序打印出所有命令行参数,每个参数都在一个单独的行上.它可以有任意多个命令行参数.例如,java command az ba cad会输出
dac
ab
za
Run Code Online (Sandbox Code Playgroud)
我不是要求吃勺子的答案,但这里有一些我已经想到的想法:
1)一旦我将每一行分配到一个String变量中,可以通过StringBuilder完成反转字符串
但是,我遇到的问题是我是否能够遍历"命令行"本身,因为它要求"任意多的命令行",这意味着我无法使用For循环,因为我没有知道范围,但我可以使用while循环吗?如果是这样,怎么样?谢谢.
我有一个功能:
function myself(a,b,c,d)
Run Code Online (Sandbox Code Playgroud)
我想在代码中使用此函数只提供参数a和b.我想忽略论点c和d.
这该怎么做?谢谢.
我怎样才能将*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) 我有一个名字的文件-q(看起来这是偶然的)
我想看看它的内容,所以我尝试了这些
$ cat '-q'
$ cat "-q"
$ cat $'-q'
Run Code Online (Sandbox Code Playgroud)
但没有任何效果.(所有给出相同的错误cat: invalid option -- 'q')
有没有办法看到它的内容?