Skip to main content
 首页 » 编程设计

python之我可以在 Python 的函数中声明一个类吗

2025年05月04日12zengkefu

如何在我的 CheckForJiraIssueRecord 函数中定义 class Options?

def CheckForJiraIssueRecord(object): 
    #sys.stdout = open(os.devnull) 
    #sys.stderr = open(os.devnull) 
 
    class Options: 
        pass 
    options = Options() 
 
    options.user = 'user' 
    options.password = 'password' 
 
    try: 
        com = jira.Commands() 
        logger = jira.setupLogging() 
        jira_env = {'home':os.environ['HOME']} 
        command_cat= "cat" 
        server = "http://jira.server.com:8080/rpc/soap/jirasoapservice-v2?wsdl" 
    except Exception, e: 
        sys.exit('config error') 
    try: 
        jira.soap = jira.Client(server) 
        jira.start_login(options, jira_env, command_cat, com, logger) 
        issue = com.run(command_cat, logger, jira_env, my_args) 
    except Exception, e: 
        print sys.exit('data error') 
 
if __name__ == '__main__': 
    commit_text_verified = verify_commit_text(os.popen('hg tip --template "{desc}"')) 
    #commit_text_verified = verify_commit_text(os.popen('hg log -r $1  --template "{desc}"')) 
    if (commit_text_verified): 
        sys.exit(0) 
    else: 
        print >> sys.stderr, ('[obey the rules!]') 
        sys.exit(1); 

是否可以在 Python 中的函数内声明类?

请您参考如下方法:

是的,只需更正您的缩进,该代码就可以正常工作。每次调用该函数时,您都将创建一个新类。

def CheckForJiraIssueRecord(object): 
    class Options: 
        pass 
    options = Options() 
 
    options.user = 'user' 
    options.password = 'password'