zoukankan      html  css  js  c++  java
  • Python初级面试语法<一>

    可变对象与不可变对象

    可变对象存的是地址,地址不变,但地址指向的值可以变(引用类型)。类型:list、dict、set等

    不可变对象直接存值,值变了,就是另一个对象了(值类型)。int、float、tuple、string等

    直接赋值,浅拷贝,深拷贝

    在含有可变对象讨论这个问题更显得有意义。

    直接赋值:直接传递对象的引用。浅拷贝,没有拷贝子对象,所以原始数据改变,子对象会改变。深拷贝,原始对象的改变不会造成深拷贝里任何子元素的改变。

    __init__和__new__区别

    __new__控制新实例的生成,__init__初始化一个新实例。可以用__new__实现单例模式。

    设计模式

    大话设计的工厂、代理、单例、观察者...... 。想起了这篇文章 20年前GoF提出的设计模式,对这个时代是否还有指导意义?

    编码、解码

    字符编码有GBK、ASCII、UTF-8、 Unicode等。encode和decode分别指编码和解码。明文--->选中一种编码加密-->密文,反之解码。

    列表推导(list comprehension)和生成表达式(generator expression)的优劣

    列表推导一下子生成完了列表,免去以后计算的时间,提高了性能,浪费了内存。而生成表达式延迟了列表的生成时间,需要它才一个个生成出来,节省了内存,降低了性能。

    什么是装饰器?

    装饰器就是把函数包装一下,为函数添加一些附加功能,装饰器就是一个函数,参数为被包装的函数,返回包装后的函数。

    如果装饰器和被装饰的函数还有其他参数呢(也可以问如果在函数之后再进行装饰,该如何做)?

    再包装一层 (个人觉得这里说得通俗易懂 https://zhidao.baidu.com/question/580801144.html)

    使用装饰器实现单例模式的代码

    def singleton(cls, *args, **kwargs):
        instance = {}
        def _instance():
            if cls not in instance:
                instance[cls] = cls(*args, *kwargs)
            return instance[cls]
        return _instance
    

    使用装饰器和使用其他方法实现单例区别?

    未能找到比较好的解答,求推荐。感觉这篇写得不错 https://www.cnblogs.com/huchong/p/8244279.html

    手写一个邮箱验证正则

    邮箱前缀允许中文、英文、数字 ,中间必须有@符号 ,最后必须是域名 域名名称 只可以是英文和符号_ -的组合。(题外话:没必要太纠结邮箱格式,邮箱格式一直都在变,以前不许有中文,现在都允许有了)

    ^[A-Za-z0-9u4e00-u9fa5]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$
    

    ( 随意看看: ^表示开始,$表示结束。[ 标记匹配字符表达式的开始,] 标记匹配字符表达式的结束。

    +表示匹配前面表达式的字符要出现一个或多个,表示转义。( 和 )分别标记子表达式的开始和结束。)

    多进程与多线程的区别

    多线程之间可以共享资源,多进程各自独占资源。

    CPU密集型适用多进程还是多线程?

    多进程,原因:要提高CPU密集型操作效率,任务同时进行的数量尽可能等于CPU的核心数,使用多线程,也不能并行运算。

    内存管理(或垃圾回收):引用计数/孤立引用环 /分代回收

    指向该对象的引用总数为引用计数,对象之间相互引用形成了孤立引用环。

    当某一代对象经历过垃圾回收,依然存活,那么它就被归入下一代对象,分代回收使得存活越就的对象越迟被回收。这篇内存管理讲得不错http://www.cnblogs.com/vamei/p/3232088.html

    进程之间的通信方式

    消息队列、信号量、管道、socket等

    什么是协程?为什么比线程快?

    一种程序组件,比线程快其一因为没有线程上下文切换的开销。https://www.cnblogs.com/zingp/p/5911537.html

    问题来源:https://blog.csdn.net/csdnsevenn/article/details/79068624~

  • 相关阅读:
    EntityFramework 启用迁移 EnableMigrations 报异常 "No context type was found in the assembly"
    JAVA 访问FTP服务器示例(2)
    NuGet Package Manager 更新错误解决办法
    JAVA 访问FTP服务器示例(1)
    RemoteAttribute 的使用问题
    诡异的 javascript 变量
    javascript apply用法
    Babun 中文乱码
    GSM呼叫过程
    转站博客园
  • 原文地址:https://www.cnblogs.com/bibi-feiniaoyuan/p/9525519.html
Copyright © 2011-2022 走看看