欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python面試題小結(jié)附答案實(shí)例代碼

 更新時(shí)間:2019年04月11日 10:56:26   作者:大猩猩  
這篇文章主要介紹了python面試題小結(jié),本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 談?wù)勀銓?duì)面向?qū)ο蟮睦斫猓?/strong>

面向?qū)ο蟮木幊?--object oriented programming,簡(jiǎn)稱(chēng):OOP,是一種編程的思想。OOP把對(duì)象當(dāng)成一個(gè)程序的基本單元,一個(gè)對(duì)象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。面向?qū)ο蟮某霈F(xiàn)極大的提高了編程的效率,使其編程的重用性增高。

python面向?qū)ο蟮闹匾g(shù)語(yǔ):

多態(tài)(polymorphism):一個(gè)函數(shù)有多種表現(xiàn)形式,調(diào)用一個(gè)方法有多種形式,但是表現(xiàn)出的方法是不一樣的。

繼承(inheritance)子項(xiàng)繼承父項(xiàng)的某些功能,在程序中表現(xiàn)某種聯(lián)系

封裝(encapsulation)把需要重用的函數(shù)或者功能封裝,方便其他程序直接調(diào)用

類(lèi):對(duì)具有相同數(shù)據(jù)或者方法的一組對(duì)象的集合

對(duì)象:對(duì)象是一個(gè)類(lèi)的具體事例

實(shí)例化:是一個(gè)對(duì)象事例話的實(shí)現(xiàn)

標(biāo)識(shí):每個(gè)對(duì)象的事例都需要一個(gè)可以唯一標(biāo)識(shí)這個(gè)事例的標(biāo)記

python中的類(lèi)與對(duì)象

class Person(object): 
def __init__(self,name): #————————>初始化函數(shù)
  self.name = name
  print "------>create:",name
def say_name(self):
  print "my name is %s" %self.name
p1 = Person("gf1") # --------->類(lèi)的實(shí)例化
p2 = Person("gf2")
p1.say_name()
p2.say_name()

以上程序是類(lèi)的一個(gè)基本寫(xiě)法,理解如下:

  person就是一個(gè)類(lèi),在這個(gè)類(lèi)中是很多的方法集合。例如類(lèi)中包含sayname等,還可以按照程序要求靈活添加各種類(lèi)的方法。

  類(lèi)中self其實(shí)就是類(lèi)的對(duì)象,是一個(gè)具體的實(shí)例。多種的實(shí)例通過(guò)類(lèi)中的self表現(xiàn)出來(lái)。

  程序中的p1、p2是具體的實(shí)例,實(shí)體。(學(xué)名叫:對(duì)象。)。一個(gè)對(duì)象就是一個(gè)實(shí)體。實(shí)體通過(guò)調(diào)用屬性、方法在類(lèi)中體現(xiàn)相應(yīng)的功能。

python中的繼承

承就是子類(lèi)繼承了父類(lèi)相應(yīng)的功能和方法。

如下代碼說(shuō)明了子類(lèi)繼承父類(lèi):

class firsttest:
def __init__(self,name):
self._name = name
def sayfirst(self):
print("hello {0}".format(self._name))
class secondtest(firsttest): #子類(lèi)繼承父類(lèi)(firsttest)的方法
def __init__(self,name):
firsttest.__init__(self,name)
def saysecond(self):
print("good {0}").format(self._name)
s = secondtest("gf1") #類(lèi)的具體實(shí)例。
s.sayfirst()
s.saysecond()

函數(shù)和面向?qū)ο缶幊痰膮^(qū)別

相同點(diǎn):都是把程序進(jìn)行封裝、方便重復(fù)利用,提高效率。
不同點(diǎn):函數(shù)重點(diǎn)是用于整體調(diào)用,一般用于一段不可更改的程序。僅僅是解決代碼重用性的問(wèn)題。
而面向?qū)ο蟪鰜?lái)代碼重用性。還包括繼承、多態(tài)等。使用上更加靈活。

2 面向?qū)ο笾衧uper的作用?

Python中對(duì)象方法的定義很怪異,第一個(gè)參數(shù)一般都命名為self(相當(dāng)于其它語(yǔ)言的this,比如:C#),用于傳遞對(duì)象本身,而在調(diào)用的時(shí)候則不

必顯式傳遞,系統(tǒng)會(huì)自動(dòng)傳遞。

今天我們介紹的主角是super(), 在類(lèi)的繼承里面super()非常常用, 它解決了子類(lèi)調(diào)用父類(lèi)方法的一些問(wèn)題, 父類(lèi)多次被調(diào)用時(shí)只執(zhí)行一次, 優(yōu)化了執(zhí)行邏輯,下面我們就來(lái)詳細(xì)看一下。

舉一個(gè)例子:

class Foo:
def bar(self, message):
print(message)
Foo().bar("Hello, Python.")
Hello, Python

當(dāng)存在繼承關(guān)系的時(shí)候,有時(shí)候需要在子類(lèi)中調(diào)用父類(lèi)的方法,此時(shí)最簡(jiǎn)單的方法是把對(duì)象調(diào)用轉(zhuǎn)換成類(lèi)調(diào)用,需要注意的是這時(shí)self參數(shù)需要顯式傳遞,例如:

class FooParent:
def bar(self, message):
print(message)
class FooChild(FooParent):
def bar(self, message):
FooParent.bar(self, message)
FooChild().bar("Hello, Python.")
Hello, Python.

這樣做有一些缺點(diǎn),比如說(shuō)如果修改了父類(lèi)名稱(chēng),那么在子類(lèi)中會(huì)涉及多處修改,另外,Python是允許多繼承的語(yǔ)言,如上所示的方法在多繼承時(shí)就需要重復(fù)寫(xiě)多次,顯得累贅。為了解決這些問(wèn)題,Python引入了super()機(jī)制,例子代碼如下:

class FooParent:
def bar(self, message):
print(message)
class FooChild(FooParent):
def bar(self, message):
super(FooChild, self).bar(message)
FooChild().bar("Hello, Python.")
Hello, Python

表面上看 super(FooChild, self).bar(message)方法和FooParent.bar(self, message)方法的結(jié)果是一致的,實(shí)際上這兩種方法的內(nèi)部處理機(jī)制大大不同,當(dāng)涉及多繼承情況時(shí),就會(huì)表現(xiàn)出明顯的差異來(lái),直接給例子: 代碼一:

class A:
def __init__(self):
print("Enter A")
print("Leave A")
class B(A):
def __init__(self):
print("Enter B")
A.__init__(self)
print("Leave B")
class C(A):
def __init__(self):
print("Enter C")
A.__init__(self)
print("Leave C")
class D(A):
def __init__(self):
print("Enter D")
A.__init__(self)
print("Leave D")
class E(B, C, D):
def __init__(self):
print("Enter E")
B.__init__(self)
C.__init__(self)
D.__init__(self)
print("Leave E")
E()

結(jié)果:

Enter E
Enter B
Enter A
Leave A
Leave B
Enter C
Enter A
Leave A
Leave C
Enter D
Enter A
Leave A
Leave D
Leave E

執(zhí)行順序很好理解,唯一需要注意的是公共父類(lèi)A被執(zhí)行了多次。

總結(jié)

以上所述是小編給大家介紹的python面試題小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

最新評(píng)論