18 KO面試官之OOP簡答題

2021-09-24 04:08:10 字數 2962 閱讀 1028

python 內建資料型別有哪些

整型 int

布林型 bool

字串 str

列表 list

元組 tuple

字典 dict

python中 help()和 dir()函式的用途是什麼

dir() 函式不帶引數時,返回當前範圍內的變數、方法和定義的型別列表

帶引數時,返回引數的屬性、方法列表

help()函式用於顯示文件字串,還可以幫助您檢視與模組,關鍵字,屬性等相關的幫助

python 中 is、==、isinstance()的區別

is 判斷的是 a 物件是否就是 b 物件,是通過 id 來判斷的

==判斷的是 a 物件的值是否和 b 物件的值相等,是通過 value 來判斷的

還可以使用內建函式isinstance()來測試乙個物件是否屬於某個類的例項

>>

> x = y =[4

,5,6

]>>

> z =[4

,5,6

]>>

> x == y

true

>>

> x == z

true

>>

> x is y

true

>>

> x is z

false

簡單列舉說明私有成員、保護成員、特殊成員的特性

_*** 乙個下劃線開頭,保護成員,只有該類的物件和子物件可以訪問這些成員

__***__ 系統定義的特殊成員 (特殊屬性 + 特殊方法)

__*** 私有成員,一般只有類物件自己能訪問,子類物件也不能訪問該成員,但是外部物件可以通過 "物件名_類名__***"這樣特殊方式來訪問

python 中的模組和包是什麼

在python中,模組是搭建程式的一種方式。每乙個python**檔案都是乙個模組,並可以引用其他的模組中定義的函式、類資訊

乙個包含許多python**的資料夾是乙個包。乙個包可以包含模組和子包,所有的py包都有__init__py 檔案

介紹一下py中 except 的用法和作用

try…except…except…else…finally…

執行 try 下的語句,如果引發異常,則執行過程會跳到 except 語句

try 下的語句正常執行,則執行 else 塊**。如果發生異常,就不會執行

如果存在 finally 語句,最後總是會執行

try

:print

('執行中可能會丟擲異常的** (資料庫連線、檔案讀取、網路訪問)'

)100/1

# 100 / 0

except

:print

('出現異常時進行捕獲!'

)else

:print

('正常執行完畢時會執行'

)finally

:print

('是否出現異常都會執行'

)

python中過載的實現機制

乙個基本的設計原則是,僅僅當兩個函式除了引數型別和引數個數不同以外,其功能是完全相同的,此時才使用函式過載,如果兩個函式的功能其實不同,那麼不應當使用過載,而應當使用乙個名字不同的函式

可變引數型別

可變引數個數

python裡面如何生成隨機數?

隨機整數:random.randint(a,b) 返回隨機整數x,a<=x<=b

隨機實數:random.random( ) 返回0到1之間的浮點數

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的可變型別與不可變型別

python的每個物件都分為可變和不可變,主要的核心型別中,數字、字串、元組是不可變的,列表、字典是可變的,對不可變型別的變數重新賦值,實際上是重新建立乙個不可變型別的物件,並將原來的變數重新指向新建立的物件

對於不可變型別int,無論建立多少個不可變型別,只要值相同 【-5~256】區間,都指向同個記憶體位址,其它的同理

>>

> i =

5>>

> i +=

1>>

> i

>>

>

id(i)

>>

> i +=

1>>

> i

>>

>

id(i)

python的引數傳遞是值傳遞還是引用傳遞

不可變引數用值傳遞像整數和字串這樣的不可變物件,是通過拷貝進行傳遞的,因為你無論如何都不可能在原處改變不可變物件,可變引數是用引用傳遞的

a =

10b =[1

,2,3

]def

show

(x, y)

: x +=14

)print

(f'x=,y='

)show(a, b)

print

(f'a=,b='

)

16 KO面試官OOP概念梳理

在乙個軟體設計與開發中,所有包名 類名 函式名 變數名都應該遵循一定的開發規範 如無特殊情況,檔案一律使用 utf 8 編碼 避免採用空格縮排,統一使用tab進行縮排 塊級函式和類定義之間空二行,類成員與函式之間空一行 模組盡量使用小寫命名,首字母保持小寫,如果有多個單詞採用下劃線分割 類名使用駝峰...

吊打面試官之HashMap

hashmap的底層資料結構是什麼?jdk1.7和jdk1.7前使用的是陣列,鍊錶 jdk1.8和jdk1.8後使用的是陣列,鍊錶,紅黑樹 hashmap的put方法流程是怎麼樣的?1.先獲取key的hash值 注意 通過key獲取hash值,直接獲取hash值就可以了,但是這裡把key的hash值...

Hold住面試官之Integer Cache

前言 最近跟許多朋友聊了下,在這個 跳槽 的 季節,大家都有點蠢蠢欲動,所以最近就多聊聊面試的時候需要注意的一些問題,這些問題不一定多深奧,多複雜,但是一不注意的話卻容易掉坑。下面看一下面試的時候經常遇到的一段 public class integerdemo 複製 根據大家以往的經驗,會認為上面的...