成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

求職Python開發(fā),面試官最喜歡問的幾個問題

AlphaWatch / 3046人閱讀

摘要:概述是個非常受歡迎的編程語言,隨著近些年機(jī)器學(xué)習(xí)云計算等技術(shù)的發(fā)展,的職位需求越來越高。下面我收集了一些面試官經(jīng)常問的問題,供大家參考學(xué)習(xí)。是創(chuàng)建對象是調(diào)用的。

關(guān)注公眾號「Python專欄」,后臺回復(fù):簡歷模板,獲取給大家準(zhǔn)備的價值99元的程序員簡歷模版11份。

0. 概述

Python是個非常受歡迎的編程語言,隨著近些年機(jī)器學(xué)習(xí)、云計算等技術(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__ 方法指向了類對象,只用給他賦值類型A,然后調(diào)用方法show,但是用完了記得修改回來。

2. 方法對象

問題:為了讓下面這段代碼運行,需要增加哪些代碼?

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)

答案:為了能讓對象實例能被直接調(diào)用,需要實現(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__ 方法,可以決定返回那個對象,也就是創(chuàng)建對象之前,這個可以用于設(shè)計模式的單例、工廠模式。__init__ 是創(chuàng)建對象是調(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 不是個全局變量,所以每個函數(shù)都得到了自己的 num 拷貝,如果你想修改 num,則必須用 global 關(guān)鍵字聲明。比如下面這樣:

num = 9

def f1():
  global num
  num = 20

def f2():
 print(num)

f2()
f1()
f2()
6. 交換兩個變量的值

一行代碼交換兩個變量值

a = 8
b = 9

答案:

a, b = b, a
7. 默認(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)用時,才是調(diào)用他。當(dāng)fn1 方法傳入?yún)?shù)時,我們可以給 mydefault 方法增加一個 *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. 包管理

一個包里有三個模塊,mod1.py, mod2.py, mod3.py,但使用 from demopack import * 導(dǎo)入模塊時,如何保證只有mod1、mod3 被導(dǎo)入了。

答案:增加 __init__.py 文件,并在文件中增加:

__all__ = ["mod1", "mod3"]
9. 閉包

寫一個函數(shù),接收整數(shù)參數(shù)n,返回一個函數(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43334.html

相關(guān)文章

  • 【專欄第一篇】分享實用美國求職面試經(jīng)歷,技巧,以及超實用網(wǎng)站

    摘要:目前是剛到美國個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實對這個很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    smallStone 評論0 收藏0
  • 【專欄第一篇】分享實用美國求職,面試經(jīng)歷,技巧,以及超實用網(wǎng)站

    摘要:目前是剛到美國個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實對這個很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    lufficc 評論0 收藏0
  • 【專欄第一篇】分享實用美國求職,面試經(jīng)歷,技巧,以及超實用網(wǎng)站

    摘要:目前是剛到美國個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。國內(nèi)說到關(guān)系,大多是負(fù)面的,但是美國這邊叫,他們確實對這個很推崇的。 前言:先自我介紹一下,我是新晉前端小白白,15年畢業(yè)之后,在相關(guān)領(lǐng)域工作3年,但一直都在自我提升階段。目前是剛到美國2個多月,分享在美國求職的經(jīng)歷,目前已有面試進(jìn)入背調(diào)階段,把我期間的準(zhǔn)備分享給大家。愿同道中人共同進(jìn)步!有...

    forrest23 評論0 收藏0
  • 技術(shù)面試中的軟技能

    摘要:閱讀原文技術(shù)面試中的軟技能作為求職者時,只聽別人說如何面試,按部就班的做,沒有特別的體會。如今作為面試官,面試別人時,才發(fā)現(xiàn)什么才是重要的事情。 閱讀原文:技術(shù)面試中的軟技能 作為求職者時,只聽別人說如何面試,按部就班的做,沒有特別的體會。如今作為面試官,面試別人時,才發(fā)現(xiàn)什么才是重要的事情。 形象 形象包括衣著發(fā)型和五官。衣著不必太正式(西裝),但也不能夠太隨意,比如肥胖的T恤和外套...

    jzman 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<