如何解决功能问题,同时允许它是动态的?

时间:2017-10-20 06:16:06

标签: python python-2.7 function

假设我正在使用以下参数调用函数

Function(char1, char2, char3, char4, Number)

其中前4个术语代表chars,最后一个是int,我可能会添加更多字符,因此函数不能是静态的。主要功能将像

一样开始
def Function(*args):
  table_line = ""
  for x in range(Number/2): 

但是通过给出函数args它不再知道它应该使用第三行中提供的参数号。

2 个答案:

答案 0 :(得分:2)

传递def func(number, *char): ... 作为第一个参数:

     File file = new File("C://Users//user//Desktop//try2//nifi-
      1.3.0//4//conf2.xml");
        String content = "";
        String material = "";
        BufferedReader s;
        BufferedWriter w;
        int m;
        RandomAccessFile ini = new RandomAccessFile(file, "rwd");
        FileLock lock = ini.getChannel().lock();
        DocumentBuilder dBuilder;
        Document document, doc;
        String date="";
        String data="";
        boolean make = false;
        try {

            String sCurrentLine;
            s = new BufferedReader(Channels.newReader(ini.getChannel(), "UTF-8"));
            while ((sCurrentLine = s.readLine()) != null) {
                content += sCurrentLine;
            }
            ini.seek(0);

答案 1 :(得分:1)

如果你正在使用python3.x(你现在没有,正如你在评论中提到的那样),你可以在使用args之前使用*可迭代的解包来解压缩def function(*args): *chars, number = args ... :< / p>

In [8]: *a, b = (1, 2, 3, 4)

In [9]: a
Out[9]: [1, 2, 3]

In [10]: b
Out[10]: 4

它的工作原理如下:

args

chars 中除最后一个之外的每个元素都会发送到list,现在变为number。您现在可以将prompt: password: Command-line input received: password: password 变量用作单独的变量。