【python】基础面试题

1.简述⾯向对象的三⼤特性?
封装: 封装指的是把⼀堆数据属性与⽅法数据放在⼀个容器中,这个容器就是对象。让对象可以通过 “.” 来调⽤对象中的数据属性与⽅法属性。
继承: 继承指的是⼦类可以继承⽗类的数据属性与⽅法属性,并可以对其进⾏修改或使⽤。

多态: 在python中的多态指的是让多种类若具备类似的数据属性与⽅法属性,都统⼀好命名规范,这样可以提⾼开发者的代码统⼀性,使得调⽤者更⽅便去理解。
2.super 的作⽤?
super()是python中调用父类的一种方法

超类指两层以上的继承关系,例如c类继承b类,b类继承a类,那么a类就是c类的超类。

作用,在继承中让代码维护起来更加方便

解决了多继承带来的重复调用(菱形继承),查找顺序(MRO)问题。
3.实例变量和类变量的区别?
类变量是所有对象共有,其中⼀个对象将它值改变,其他对象得到的就是改变后的结果;
⽽实例变量则属对象私有,某⼀个对象将其值改变,不影响其他对象;
4.解释继承,是否可以多继承?
可以多重继承,多重继承意味着,一个雷可以从多个父类派生。
一个类继承自另一个类,也可以说是一个孩子类/派生类/子类,继承自父类/基类/超类,同时获取所有的类成员(属性和方法)。继承使我们可以重用代码,并且还可以更方便地创建和维护代码。

Python 支持以下类型的继承:

单继承- 一个子类类继承自单个基类 多重继承- 一个子类继承自多个基类

多级继承- 一个子类继承自一个基类,而基类继承自另一个基类

分层继承- 多个子类继承自同一个基类 混合继承- 两种或两种以上继承类型的组合

5.类和对象有什么区别
类(Class)被视为对象的蓝图。类中的第一行字符串称为 doc 字符串,包含该类的简短描述。在 Python 中,使用 class 关键字可以创建了一个类。一个类包含变量和成员组合,称为类成员。
对象(Object)是真实存在的实体。在 Python 中为类创建一个对象,我们可以使用 obj = CLASS_NAME()例如:obj = num()使用类的对象,我们可以访问类的所有成员,并对其进行操作。
6、什么是封装?举例说明?(举例说明没写,后续补充)
封装(Encapsulation)意味着将数据和成员函数包装在一起成为一个单元。它还实现了数据隐藏的概念。
7、什么是多态?举例说明?
多态(Polymorphism)的意思是「许多形式」。子类可以定义自己的独特行为,并且仍然共享其父类/基类的相同功能或行为。
8.类方法、实例方法、静态方法有什么区别?
在类中定义的普通方法即为类的实例方法,第一个参数为 self 代表实例本身,当调用某个实例方法时,该实例的对象引用作为第一个参数 self 隐式的传递到方法中。

类方法是与类绑定的方法。类方法有一个约定的参数 cls 代表类本身,python 会自动将类本身传给 cls, 不需要我们传参。类方法必须使用 @classmethod 装饰器声明。

静态方法就是普通的函数,只是碰巧在类的定义体中,而不是在模块层定义,不能访问类属性。主要是让静态方法放在此类的名称空间之内,从而能够更加有组织性。使用时需在加上@staticmethod 装饰器。
9.python有什么特点?
易于编码

免费和开源语言

高级语言

易于调试

OOPS 支持

大量的标准库和第三方模块

可扩展性(我们可以用 C 或 C++编写 Python 代码)
10.Python 中 append,insert 和 extend 的区别?

append:在列表末尾添加新元素。

insert:在列表的特定位置添加元素。

extend:通过添加新列表来扩展列表。
---------------------------------------------------------------------------------------------------------------------------
 

1.如何区分break,continue和pass?
break:用于提前终止当前循环,它代表直接结束循环,即从循环中跳出。就是在循环条件没有False条件或者序列还没有完全递归完,就立即停止执行循环语句,直接执行循环块后的语句。break语句可以在while和for循环中使用,如果循环为嵌套循环,那么break语句会停止执行最内层的循环,并在内循环块之后开始执行代码的下一行。

continue:跳出本次循环,执行下一次循环还在继续,只不过当前循环不执行了,而是切到下个循环,如当前执行了i次,不管这第i次循环内代码有没有执行完,都跳到i+1次从头开始循环

pass:不做任何事,只起到占位作用就是即使正常执行了pass语句,后面语句该执行执行,该咋地咋地,没有干扰。
2.解释 Python 中的 join() 和 split() 函数

join() 函数可以将指定的字符添加到字符串中。

‘1,2,3,4,5’

split() 函数可以用指定的字符分割字符串

[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]

3.python运算符都有哪些种类,举例说明一下?

4.!=和 is not 运算符的区别?
!=如果两个变量或对象的值不想对,则返回true

is not 是用来检查两个对象是否属于同一内存对象
5.解释*args 与 **kwargs?

*args是当前我们不确定要传递给函数参数的数据时使用。
**kwargs是当我们想将字典作为参数传递给函数时使用的。
6.如何获取字典中的所有键?
使用 keys() 来获取字典中的所有键
7.谈谈你对实例方法中 self 的理解 ?
self 一般作为实例方法的第一个参数,代表实例自身

self 也可以由其他名称代替

def methodA(self, arg1, arg2) 会被转化为 ClassA.methodA(ObjectA, arg1, arg2),这样就知道在哪个实例上使用这个方法。
8.说一下装饰器,应用于什么场景,项目中是怎么用到的?

9.推导式,迭代器,生成器

10.python私有变量能否访问

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值