Python面向?qū)ο缶毩?xí)題匯總

1. 什么是類,什么是對(duì)象?

  • 類:對(duì)一類事物的描述,是抽象的、概念上的定義。
  • 對(duì)象:實(shí)際存在的該類事物的每個(gè)個(gè)體,因而也稱實(shí)例(instance)。

類是對(duì)象的抽象,對(duì)象是類的實(shí)例。

2. python中如何定義一個(gè)類的格式

class 類名(object):
    成員(方法)

3. 類(class)由哪三個(gè)部分構(gòu)成

類名,屬性,方法。

4. 類名的命名規(guī)則是什么

要遵循標(biāo)識(shí)符的命名規(guī)范,盡量使用大駝峰命名法,命名時(shí)做到“見名思意”。

5. python中如何通過類創(chuàng)建對(duì)象

對(duì)象名 = 類名()

6. 定義一個(gè)Person類,使用Person類,創(chuàng)建一個(gè)mayun對(duì)象后,添加company屬性,值是"阿里巴巴";創(chuàng)建一個(gè)wangjianlin對(duì)象,添加company屬性,值是"萬(wàn)達(dá)集團(tuán)"

# Person類
class Person(object):
    pass

# mayun對(duì)象
mayan = Person()
mayan.company = "阿里巴巴"

# wangjianlin對(duì)象
wangjianlin = Person()
mayan.company = "萬(wàn)達(dá)集團(tuán)"

7. 定義一個(gè)水果類,然后通過水果類,創(chuàng)建蘋果對(duì)象、橘子對(duì)象、西瓜對(duì)象并分別添加上顏色屬性

# 水果類
class Fruits(object):
    pass

# 蘋果對(duì)象
apple = Fruits()
apple.color = "red"

# 橘子對(duì)象
tangerine = Fruits()
tangerine.color = "orange"

# 西瓜對(duì)象
watermelon = Fruits()
watermelon.color = "green"

8. init方法有什么作用,如何定義

__init__方法用來(lái)監(jiān)聽對(duì)象的實(shí)例過程。

def __init__(self):
    pass

9. str方法有什么作用,使用時(shí)應(yīng)注意什么問題

__str__方法用來(lái)追蹤對(duì)象的屬性值的變化的。

  • __str__方法不能再添加任何參數(shù),
  • __str__方法必須有一個(gè)返回值,返回值必須為字符串類型。

10. 方法中的"self"代表什么

self代表的是類的實(shí)例對(duì)象(注意不是類本身)。

11. 定義一個(gè)汽車類,并在類中定義一個(gè)move方法,然后分別創(chuàng)建BMW_X9、AUDI_A9對(duì)象,并添加顏色、馬力、型號(hào)等屬性,然后分別打印出屬性值、調(diào)用move方法(使用init方法完成屬性賦值)

# 汽車類
class Car(object):
    def __init__(self, color, speed, type):
        self.color = color
        self.speed = speed
        self.type = type
    def move(self):
        print("汽車開始跑了")

# BMW_X9對(duì)象
BMW_X9 = Car("red", 80, "F4")
print(BMW_X9.color, BMW_X9.speed, BMW_X9.type)
BMW_X9.move()

# AUDI_A9對(duì)象
AUDI_A9 = Car("black", 100, "S3")
print(AUDI_A9.color, AUDI_A9.speed, AUDI_A9.type)
AUDI_A9.move()

12. 將身邊的一個(gè)事物抽象出一個(gè)類。比如老師、學(xué)生、桌子、椅子、蘋果、香蕉、枕頭、被子或任意物品

  • 提供基本屬性、基本的方法。
  • 通過類創(chuàng)建出幾個(gè)不同的對(duì)象。
  • 打印它們的屬性、調(diào)用它們的方法。
# Person類
class Person(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def play(self):
        print("我可以玩")

# Article類
class Article(object):
    def __init__(self, width, height):
        self.width = width
        self.height = height
    def func(self):
        print("我可以放東西")

# Article類
class Fruits(object):
    def __init__(self, color, weight):
        self.color = color
        self.weight = weight
    def eat(self):
        print("我可以被吃")

# lisi
lisi = Person("李思", 18)
print(lisi.name, lisi.age)
lisi.play()

# desk
desk = Article(80, 100)
print(desk.width, desk.height)
desk.func()

# apple
apple = Fruits("red", 10)
print(apple.color, apple.weight)
apple.eat()

13. 要修改一個(gè)對(duì)象的屬性有幾種方法,分別是什么?

  • 直接修改屬性的值。
  • 通過方法修改屬性的值。
  • 通過方法對(duì)屬性的值進(jìn)行遞增/減。

14. 保護(hù)屬性安全性的一般處理方式是什么?

把這個(gè)屬性設(shè)置為私有的,通過一些封裝的方法進(jìn)行操作。

15. 要想將一個(gè)屬性私有化,該怎么做?

在屬性名前面加上兩個(gè)下劃線,即:__屬性名。

16. 定義一個(gè)People類,其中要有類的初始化函數(shù)(帶參數(shù)name)

# Person類
class Person(object):
    def __init__(self, name):
        self.name = name

17. 如何將上述的name改成私有屬性

self.__name = name

18. 如果子類中沒有定義init方法,但是要實(shí)例化一個(gè)對(duì)象,那此時(shí)會(huì)調(diào)用父類的構(gòu)造方法嗎?

如果本身沒有定義init方法,會(huì)調(diào)用直接繼承給它的第一個(gè)父類的init方法。

19. 簡(jiǎn)單描述什么是單繼承

一個(gè)子類只能有一個(gè)父類,被稱為單繼承。

20. 如果子類重寫了init方法,那么在實(shí)例化對(duì)象的時(shí)候,你覺得會(huì)調(diào)用哪個(gè)構(gòu)造方法,是父類的還是子類的?

子類重寫了init方法,默認(rèn)會(huì)調(diào)用自己的。

21. 當(dāng)子類重寫init方法,在實(shí)例化對(duì)象的時(shí)候,如果想要調(diào)用父類的init方法該怎么辦?

需要顯示進(jìn)行調(diào)用,即:super().__init__()。

22. 定義一個(gè)類,提供可以重新設(shè)置私有屬性name的方法,限制條件為字符串長(zhǎng)度小于10,才可以修改。

# Person類
class Person(object):
    def __init__(self):
        self.__name = ""

    def set_name(self, name):
        if len(name) < 10:
            self.__name = name

23. 在一個(gè)對(duì)象銷毀的時(shí)候,可以在什么函數(shù)釋放資源?

通過魔法方法,__del__

24. 簡(jiǎn)單描述什么是多繼承

一個(gè)子類可以有多個(gè)父類,稱為多繼承。

25. 簡(jiǎn)單描述什么是重寫?

子類不想原封不動(dòng)地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。

希望本文對(duì)你有所幫助~~如果對(duì)軟件測(cè)試、接口測(cè)試、自動(dòng)化測(cè)試、面試經(jīng)驗(yàn)交流感興趣可以加入我們。642830685,免費(fèi)領(lǐng)取最新軟件測(cè)試大廠面試資料和Python自動(dòng)化、接口、框架搭建學(xué)習(xí)資料!技術(shù)大牛解惑答疑,同行一起交流。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容