摘要:概述是個(gè)非常受歡迎的編程語言,隨著近些年機(jī)器學(xué)習(xí)云計(jì)算等技術(shù)的發(fā)展,的職位需求越來越高。下面我收集了一些面試官經(jīng)常問的問題,供大家參考學(xué)習(xí)。是創(chuàng)建對(duì)象是調(diào)用的。
關(guān)注公眾號(hào)「Python專欄」,后臺(tái)回復(fù):簡歷模板,獲取給大家準(zhǔn)備的價(jià)值99元的程序員簡歷模版11份。
0. 概述Python是個(gè)非常受歡迎的編程語言,隨著近些年機(jī)器學(xué)習(xí)、云計(jì)算等技術(shù)的發(fā)展,Python的職位需求越來越高。下面我收集了一些Python面試官經(jīng)常問的問題,供大家參考學(xué)習(xí)。
1. 類繼承有如下的一段代碼:
class A: def show(self): print "base show" class B(A): def show(self): print "derived show" obj = B() obj.show()
如何調(diào)用類A的show方法了,方法如下:
obj.__class__ = A obj.show()
__class__ 方法指向了類對(duì)象,只用給他賦值類型A,然后調(diào)用方法show,但是用完了記得修改回來。
2. 方法對(duì)象問題:為了讓下面這段代碼運(yùn)行,需要增加哪些代碼?
class A(object): def __init__(self, a, b): self.__a = a self.__b = b def myprint(self): print("a=", self.__a, "b=", self.__b) a1 = A(10,20) a1.myprint() a1(80)
答案:為了能讓對(duì)象實(shí)例能被直接調(diào)用,需要實(shí)現(xiàn) __call__ 方法
class A: def __init__(self, a, b): self.__a = a self.__b = b def myprint(self): print("a=", self.__a, "b=", self.__b) def __call__(self, num): print("call:", num + self.__a)3. new和init
下面這段代碼輸出什么?
class B: def fn(self): print("B fn") def __init__(self): print("B INIT") class A(object): def fn(self): print("A fn") def __new__(cls,a): print("NEW", a) if a>10: return super(A, cls).__new__(cls) return B() def __init__(self,a): print("INIT", a) a1 = A(5) a1.fn() a2=A(20) a2.fn()
答案:
NEW 5 B INIT B fn NEW 20 INIT 20 A fn
使用 __new__ 方法,可以決定返回那個(gè)對(duì)象,也就是創(chuàng)建對(duì)象之前,這個(gè)可以用于設(shè)計(jì)模式的單例、工廠模式。__init__ 是創(chuàng)建對(duì)象是調(diào)用的。
4. Python list和dict生成下面這段代碼輸出什么?
ls = [1,2,3,4] list1 = [i for i in ls if i>2] print(list1) list2 = [i*2 for i in ls if i>2] print(list2) dic1 = {x: x**2 for x in (2, 4, 6)} print(dic1) dic2 = {x: "item" + str(x**2) for x in (2, 4, 6)} print(dic2) set1 = {x for x in "hello world" if x not in "low level"} print(set1)
答案:
[3, 4] [6, 8] {2: 4, 4: 16, 6: 36} {2: "item4", 4: "item16", 6: "item36"} set(["h", "r", "d"])5. 全局和局部變量
下面這段代碼輸出什么?
num = 9 def f1(): num = 20 def f2(): print(num) f2() f1() f2()
答案:
9 9
num 不是個(gè)全局變量,所以每個(gè)函數(shù)都得到了自己的 num 拷貝,如果你想修改 num,則必須用 global 關(guān)鍵字聲明。比如下面這樣:
num = 9 def f1(): global num num = 20 def f2(): print(num) f2() f1() f2()6. 交換兩個(gè)變量的值
一行代碼交換兩個(gè)變量值
a = 8 b = 9
答案:
a, b = b, a7. 默認(rèn)方法
如下的代碼:
class A(object): def __init__(self,a,b): self.a1 = a self.b1 = b print("init") def mydefault(self): print("default") a1 = A(10,20) a1.fn1() a1.fn2() a1.fn3()
方法 fn1 / fn2 / fn3 都沒有定義,添加代碼,是沒有定義的方法都調(diào)用 mydefault 函數(shù),上面的代碼應(yīng)該輸出
default default default
答案:
class A(object): def __init__(self,a,b): self.a1 = a self.b1 = b print("init") def mydefault(self): print("default") def __getattr__(self,name): return self.mydefault a1 = A(10,20) a1.fn1() a1.fn2() a1.fn3()
方法 __getattr__ 只有當(dāng)沒有定義的方法調(diào)用時(shí),才是調(diào)用他。當(dāng)fn1 方法傳入?yún)?shù)時(shí),我們可以給 mydefault 方法增加一個(gè) *args 不定參數(shù)來兼容。
class A: def __init__(self,a,b): self.a1 = a self.b1 = b print("init") def mydefault(self,*args): print("default:" + str(args[0])) def __getattr__(self,name): print("other fn:", name) return self.mydefault a1 = A(10,20) a1.fn1(33) a1.fn2("hello") a1.fn3(10)8. 包管理
一個(gè)包里有三個(gè)模塊,mod1.py, mod2.py, mod3.py,但使用 from demopack import * 導(dǎo)入模塊時(shí),如何保證只有mod1、mod3 被導(dǎo)入了。
答案:增加 __init__.py 文件,并在文件中增加:
__all__ = ["mod1", "mod3"]9. 閉包
寫一個(gè)函數(shù),接收整數(shù)參數(shù)n,返回一個(gè)函數(shù),函數(shù)的功能是把函數(shù)的參數(shù)和n相乘并把結(jié)果返回。
答案:
def mulby(num): def gn(val): return num * val return gn zw = mulby(7) print(zw(9));
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/43334.html
摘要:目前是剛到美國個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...
摘要:目前是剛到美國個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...
摘要:目前是剛到美國個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實(shí)對(duì)這個(gè)很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個(gè)多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...
摘要:閱讀原文技術(shù)面試中的軟技能作為求職者時(shí),只聽別人說如何面試,按部就班的做,沒有特別的體會(huì)。如今作為面試官,面試別人時(shí),才發(fā)現(xiàn)什么才是重要的事情。 閱讀原文:技術(shù)面試中的軟技能 作為求職者時(shí),只聽別人說如何面試,按部就班的做,沒有特別的體會(huì)。如今作為面試官,面試別人時(shí),才發(fā)現(xiàn)什么才是重要的事情。 形象 形象包括衣著發(fā)型和五官。衣著不必太正式(西裝),但也不能夠太隨意,比如肥胖的T恤和外套...
閱讀 2418·2021-11-16 11:44
閱讀 1877·2021-10-12 10:12
閱讀 2160·2021-09-22 15:22
閱讀 3008·2021-08-11 11:17
閱讀 1505·2019-08-29 16:53
閱讀 2653·2019-08-29 14:09
閱讀 3474·2019-08-29 14:03
閱讀 3301·2019-08-29 11:09