pycharm實現在子類中新增乙個父類沒有的屬性

2022-09-27 11:06:09 字數 3515 閱讀 4598

我就廢話不多說了,還是直接看**吧!

class car():

"""一次模擬汽車的簡單嘗試"""

def __init__(self, make, model, year):

"""初始化描述汽車的屬性"""

self.make = make

self.model = model

self.year = year

self.odometer_reading = 0

def get_description_name(self):

"""返回整潔的描述性資訊"""

long_name = str(self.year) + ' ' + self.make + ' ' + self.model

return long_name.title()

def read_odometer(self):

"""列印一條指出汽車里程的訊息"""

print("this car has " + str(self.odometer_reading) + " miles on it.")

def update_odometer(self, mileage):

"""將里程讀數設定為指定的值

禁止將里程表讀數往**

"""if mileage >= self.odometer_reading:

self.odometer_reading = mileage

else:

print("you can't roll back an odometer!")

def increment_odometer(self, miles):

"""將里程表讀數增加指定的量"""

self.odometer_reading += miles

class electriccar(car):

"""電動汽車的獨特之處"""

def _init_(self, make, model, year):

"""電動汽車的獨特之處

初始化父類的屬性,再初始化電動汽車特有的屬性

"""super().__init__(make, model, year)

self.battery_size = 70

def describe_battery(self):

"""列印一條描述電瓶容量的訊息"""

prin"this car has a " + str(self.battery_size) + "-kwh battery.")

my_tesla = electriccar('tesla', 'model s', 2016)

print(my_tesla.get_description_name())

my_tesla.describe_battery()

執行結果:

traceback (most recent call last):

file "e:/python程式設計從入門到精通配套資料/self-taught python/electric_car.py", line 50, in

my_tesla.describe_battewww.cppcns.comry()

file "e:/python程式設計從入門到精通配套資料/self-taught python/electric_car.py", line 46, in describe_battery

print("this car has a " + str(self.程式設計客棧battery_size) + "-kwh battery.")

attributeerror: 'electriccar' object has no attribute 'battery_size'

補充知識:python中類的繼承,子類的方法的新增,子類的方法的覆蓋,子類的屬性的新增,及繼續父類的屬性

python如果我們想要繼承乙個類的方法,並且不改當前類,我們可以新建乙個子類,來繼續他的方法

1、類的繼承,我們先來建立乙個animal的父類,我們再來建立乙個dog的子類,dog子類繼承父類animal的方法,但是裡面沒有執行任何**,這時我們初始化一下dog子類為dog_1,記得也要傳入身高還有體重,不然會報錯我們可以發現dog_1繼承了animal裡面的屬性及方法。直接輸出一下及呼叫一下。

class animal():

def __init__(self, weight, high):

self.weight = weight

self.high = high

def shout(self):

print('wow'程式設計客棧)

class dog(animal):

pass

dog_1 = dog(20,40)

print(dog_1.high)

print(dog_1.weight)

dog_1.shout()

#輸出內容是

4020

wow2、子類的方法的新增,我們同樣可以在dog這個子類裡新增新的方法,比如我們新增乙個run的方法,再初始化一下dog_1,你會發現dog_1也會有run這個方法。

class dog(animal):

def run(self):

print('running')

dog_1 = dog(20,40)

dog_1.run()

#輸出結果是

running

3、子類的方法的覆蓋,我們再新增乙個子類cat,同樣繼承animal,但是你發現cat不是wow這樣叫的,所以我們要重新定義一下shout函式,把父類animal裡的函式覆蓋掉。這時我們初始化cat_1呼叫cat子類,記得要傳入體重和身高,不然會報錯,然後呼叫shout方法,你會發現輸出的內容是miao,因為子類裡的函式把父類裡的函式覆蓋掉了。

class cat(animal):

def shout(self):

print('miao')

cat_1 = cat(20, 40)

cat_1.shout()

#輸出結果是

miao

4、子類的屬性的新增,及繼續父類的屬性,如果這時我們要給cat加乙個屬性color,同樣用__init__來定義屬性,但是我們要用super()來繼承父類裡的weight和high,color 屬性的性,同樣用self.color賦值,這樣我們用cat_2初始化cat類的時候就要傳入三個引數,我們輸出乙個cat_2.color,可以看到是正常呼叫的。

class cat(animal):

def __init__(self, weight, high, color):

super().__inwhzxiaayzit__(weight, high)

self.color = color

def shout(self):

print('miao')

cat_2 = cat(20, 40, 'yellow')

print(cat_2.color)

#輸出結果是

yellow

本文標題: pycharm實現在子類中新增乙個父類沒有的屬性

本文位址:

Pycharm中實現單步跟蹤

在分析程式執行次序和功能時,我們經常需要對程式進行單步跟蹤除錯,下面就介紹下在pycharm中如何除錯 1 首先,如果使用過vs的朋友應該都知道如何使用單步跟蹤進行程式的除錯,在vs中不設定斷點也是可以單步執行的,但是在pycharm則不一樣 2 在pycharm中,進入程式的除錯可以點選工具欄中的...

iOS 如何實現在文字上新增拼音

一 介紹 最近專案有乙個需求,需要給朗誦的文字新增對應的拼音,而且要求使用原生的控制項實現。一開始聽到這個需求挺懵逼的,感覺有點難。後來,靜下來想一下,其實還是可以實現的,無非就是自定義了。下面,就來說說思想。二 思想 server端首先返回漢字和拼音一一對應的字串,我們根據需要分別擷取存入陣列。乙...

js實現在游標的位置 新增內容

sljfldjfldf 這裡是乙個可編輯層 jquery方法 點選我主要思路 當點選某個元素的時候,讓乙個輸入框,插入指定的值。1.當點選某個元素的時候,應該讓輸入框獲取焦點,因為只有獲得了焦點,才能在裡面輸入值 ie下 document.selection.createrange ff下 var ...