python面试题汇总

2023-12-20 06:45:09

1、“is”和“==”有什么区别?

is 是判断是两个变量是否为同一个对象,判断的是变量的引用,比较对象的引用id。

== 是判断两个变量的值、数据类型是否相等。

2、可变数据类型与不可变数据类型有哪些?

可变数据类型:列表(list)、字典(dict)、集合(set)

不可变数据类型:整数(int)、浮点数(float)、布尔(bool)、字符串(str)、元组(tuple)

3、实例方法、静态方法和类方法有什么区别?

实例方法:在类中接受 self 参数。

静态方法:使用@staticmethod装饰器。

类方法:使用@classmethod装饰器,cls参数。

4、Python是按引用调用还是按值调用?

不可变变量是按值调用,可变变量是按引用调用。

按值调用例子。当在函数内部修改时,name的值在函数外部不会发生变化。name的值已分配给内存中该函数作用域的新块。

name = 'chr'
def add_chars(s): 
    s += 'is' 
    print(s)

add_chars(name) 
print(name)  #=> chris#=> chr

按引用调用例子。函数外部定义的列表在函数内部的修改是如何影响到函数外部的。函数中的参数指向内存中存储li值的原始块。

li = [1,2]
def add_element(seq):
    seq.append(3)
    print(seq)

add_element(li)
print(li)  #=> [1, 2, 3]#=> [1, 2, 3]

5、类中的“self”指的是什么?
self 表示引用类本身的实例。在类中,就可以直接使用 self 调用类的属性、方法。

6、深拷贝与浅拷贝区别

深拷贝、浅拷贝主要是对可变变量影响较大。

浅拷贝:会创建一个新的变量,但是该变量存的是原始对象的引用,如果修改原始对象,该变量也会发生变化。

深拷贝:会创建一个新的变量,会在内存中重新拷贝一份数据,变量存新数据的引用,修改原数据,不会对新变量产生影响。

文章来源:https://blog.csdn.net/Dxy1239310216/article/details/135078983
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。