python互相关函数_Python每日3题,100天成大牛(12)

  1. 每日3题是麦叔的面试系列专题之一,每天包括初级,中级,高级难度题目各一道。
  2. 每日3题,100天之后成为大牛!
  3. 如果有不明白的,给麦叔留言。

[Easy] 对缺省参数的理解?

思考30秒再往下翻...

5c9cac21984d4f660ff5e7f091a3eb62.png

缺省参数指在调用函数的时候没有传入参数的情况下,调用默认的参数,在调用函数的同时赋值时,所传入的参数会替代默认参数。

def test(name = 'maishu'):
    print('hello', name)

test()  # => hello maishu
test('world')  # => hello world

[Normal] 什么是单例模式,它的应用场景有哪些?

思考30秒再往下翻...

627de37a36729e16f34ebd3b0e93a9ac.png

单例模式是指:对于某个特定的类在内存中只会创建且仅创建一次对象的设计模式。

  1. 单例类只能有一个实例
  2. 单例类必须自己创建自己的唯一实例
  3. 单例类必须给所有其他对象提供这一实例

单例模式应用的场景一般发现在以下条件下:

  1. 有频繁实例化然后销毁的情况,也就是频繁的 new 对象,可以考虑单例模式。
  2. 资源共享的情况下,避免由于资源操作时导致的性能或损耗等,如日志文件,应用配置。
  3. 控制资源的情况下,方便资源之间的互相通信。如线程池等,1,网站的计数器 2,应用配置 3.多线程池 4数据库配置 数据库连接池 5.应用程序的日志应用...
# 一个简单的单例实现
class Single(object):
    _instance = None
    def __new__(cls, *args, **kw):
        if cls._instance is None:
            cls._instance = object.__new__(cls, *args, **kw)
        return cls._instance
    def __init__(self):
        pass

single1 = Single()
single2 = Single()
print(id(single1) == id(single2))

[Hard] 说一下python函数重载机制

思考30秒再往下翻...

4549156b5681557feeea05fad723a516.png

函数重载主要是为了解决两个问题。

  1. 可变参数类型。
  2. 可变参数个数。

另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。

好吧,那么对于情况 1,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。

那么对于情况 2,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。

好了,鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。


支持麦叔,请点在看,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值