小编use*_*986的帖子

在Python中调用嵌套函数时的额外括号

我正在研究第6章中Mark Pilgrim的Dive Into Python Book的模块,我对这行代码的return [getFileInfoClass(f)(f) for f in fileList]作用感到困惑.getFileInfo是一个嵌套函数,我想知道什么是重复(f),额外的括号是.我希望有人可以帮助我.这是完整的功能:

def listDirectory(directory, fileExtList):
    "get list of file info objects for files of particular extensions"
    fileList = [os.path.normcase(f) for f in os.listdir(directory)]
    fileList = [os.path.join(directory, f) for f in fileList \
                if os.path.splitext(f)[1] in fileExtList]
    def getFileInfoClass(filename, module=sys.modules[FileInfo.__module__]):
        "get file info class from filename extension"
        subclass = "%sFileInfo" % os.path.splitext(filename)[1].upper()[1:]
        return hasattr(module, subclass) and getattr(module, subclass) or FileInfo
    return [getFileInfoClass(f)(f) for f in fileList]
Run Code Online (Sandbox Code Playgroud)

python nested function

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

为什么在Java中的方法调用中使用括号?

虽然我做了一些广泛的搜索,但我遇到了一些代码并且无法理解它的某个方面!

我的问题是:为什么在方法调用的中间使用括号?

    package com.zetcode;

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;


    public class QuitButtonExample extends JFrame {

    public QuitButtonExample() {

        initUI();
    }

    private void initUI() {

       JPanel panel = new JPanel();
       getContentPane().add(panel);

       panel.setLayout(null);

       JButton quitButton = new JButton("Quit");
       quitButton.setBounds(50, 60, 80, 30);

       quitButton.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent event) {
               System.exit(0);
          }
       });

       panel.add(quitButton);

       setTitle("Quit button");
       setSize(300, 200);
       setLocationRelativeTo(null);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() …
Run Code Online (Sandbox Code Playgroud)

java methods field class instance

3
推荐指数
1
解决办法
688
查看次数

标签 统计

class ×1

field ×1

function ×1

instance ×1

java ×1

methods ×1

nested ×1

python ×1