18_KO面试官之OOP简答题

在这里插入图片描述
Python 内建数据类型有哪些

  1. 整型 int
  2. 布尔型 bool
  3. 字符串 str
  4. 列表 list
  5. 元组 tuple
  6. 字典 dict

Python中 help()和 dir()函数的用途是什么

  1. dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表
  2. 带参数时,返回参数的属性、方法列表
  3. help()函数用于显示文档字符串,还可以帮助您查看与模块,关键字,属性等相关的帮助

Python 中 is、==、isinstance()的区别

  1. is 判断的是 a 对象是否就是 b 对象,是通过 id 来判断的
  2. ==判断的是 a 对象的值是否和 b 对象的值相等,是通过 value 来判断的
  3. 还可以使用内置函数isinstance()来测试一个对象是否属于某个类的实例
>>> x = y = [4,5,6]
>>> z = [4,5,6]
>>> x == y
True
>>> x == z
True
>>> x is y
True
>>> x is z
False

简单列举说明私有成员、保护成员、特殊成员的特性

  1. _xxx 一个下划线开头,保护成员,只有该类的对象和子对象可以访问这些成员
  2. __xxx__ 系统定义的特殊成员 (特殊属性 + 特殊方法)
  3. __xxx 私有成员,一般只有类对象自己能访问,子类对象也不能访问该成员,但是外部对象可以通过 "对象名_类名__xxx"这样特殊方式来访问

Python 中的模块和包是什么

  1. 在Python中,模块是搭建程序的一种方式。每一个Python代码文件都是一个模块,并可以引用其他的模块中定义的函数、类信息
  2. 一个包含许多Python代码的文件夹是一个包。一个包可以包含模块和子包,所有的Py包都有__init__py 文件

介绍一下Py中 except 的用法和作用

  1. try…except…except…else…finally…
  2. 执行 try 下的语句,如果引发异常,则执行过程会跳到 except 语句
  3. try 下的语句正常执行,则执行 else 块代码。如果发生异常,就不会执行
  4. 如果存在 finally 语句,最后总是会执行
try:
    print('运行中可能会抛出异常的代码 (数据库连接、文件读取、网络访问)')
    100 / 1  # 100 / 0
except:
    print('出现异常时进行捕获!')
else:
    print('正常执行完毕时会执行')
finally:
    print('是否出现异常都会执行')

Python中重载的实现机制

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

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

Python里面如何生成随机数?

  1. 随机整数:random.randint(a,b) 返回随机整数x,a<=x<=b
  2. 随机实数:random.random( ) 返回0到1之间的浮点数
  3. random.uniform(a,b):返回指定范围内的浮点数
for i in range(10):
    # [a,b] 返回指定范围的随机整数
    print(random.randint(1, 2), end=' ')
print()
for i in range(10):
    # 返回0~1之间的浮点数
    print(random.random(), end=' ')
print()
for i in range(10):
    # 返回指定范围内的浮点数
    print(random.uniform(3, 4), end=' ')

Python的可变类型与不可变类型

  1. Python的每个对象都分为可变和不可变,主要的核心类型中,数字、字符串、元组是不可变的,列表、字典是可变的,对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象
  2. 对于不可变类型int,无论创建多少个不可变类型,只要值相同 【-5~256】区间,都指向同个内存地址,其它的同理
>>> i = 5
>>> i += 1
>>> i
>>> id(i)
>>> i += 1
>>> i
>>> id(i)

Python的参数传递是值传递还是引用传递

不可变参数用值传递像整数和字符串这样的不可变对象,是通过拷贝进行传递的,因为你无论如何都不可能在原处改变不可变对象,可变参数是用引用传递的

a = 10
b = [1, 2, 3]

def show(x, y):
    x += 1
    y.append(4)
    print(f'x={x},y={y}')

show(a, b)
print(f'a={a},b={b}')

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值