自定义函数 嵌套

本文探讨了函数嵌套在编程中的优点,如确保内部函数的隐私性,防止全局变量污染,以及通过合理嵌套提升代码运行效率,例如在递归函数中进行参数检查以优化性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 目录
  1. 目录
  2. 函数嵌套的优点
  • 函数嵌套的优点:
  1. 保证内部函数的隐私。内部函数只能被其外部函数调用和访问,不会暴露到全局变量。
# -*- coding: utf-8 -*-
# 连接数据库优化

from sqlalchemy import create_engine
import configparser, os

def connectDB():
    def get_DB_configuration():
        path = r''
        if os.path.exists(path):
            conf = configparser.ConfigParser()
            conf.read(path)
            # 信息获取
            scott = conf.get('SQL Server', 'accountname')
            tiger = conf.get('SQL Server', 'password')
            hostname = conf.get('SQL Server', 'ip')
            port = conf.get('SQL Server', 'port')
            dbname = conf.get('SQL Server', 'dbname')
            return scott, tiger, hostname, port, dbname
        else:
            raise FileNotFoundError('配置文件异常')
    conn = create_engine('mssql+pymssql://%s:%s@%s:%s/%s' % get_DB_configuration())
    return conn
        

if __name__ == '__main__':
    
    engine = connectDB()
  1. 合理的嵌套可以提高运行效应,如下列递归中,提前进行参数检查,只需检查一次即可。
def factorial(input):
    # validation check
    if not isinstance(input, int):
        raise Exception('input must be an integer.')
    if input < 0:
        raise Exception('input must be greater or equal to 0' )
    ...

    def inner_factorial(input):
        if input <= 1:
            return 1
        return input * inner_factorial(input-1)
    return inner_factorial(input)


print(factorial(5))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值