Python 類,Python

來源:互聯網
上載者:User

Python 類,Python
1、建立和使用類

  使用類幾乎可以類比任何東西。

1.1建立Dog類

  根據Dog類建立的每個執行個體都將儲存名字和年齡。我們賦予了每條小狗蹲下sit()和打滾roll_over()的能力

#!/usr/bin/env pythonclass Dog:    """一次類比小狗的簡單嘗試"""    def __init__(self,name,age):        """初始化屬性name和age"""        self.name = name        self.age = age    def sit(self):        """類比小狗被命令時蹲下"""        print(self.name.title() + " is now sitting!")    def roll_over(self):        """類比小狗被命令時打滾"""        print(self.name.title() + "roll over!")my_dog = Dog('white',18)print("My dog name is " + my_dog.name.title() + ".")print("My dog is " +str(my_dog.age) + " years old!")my_dog.sit()my_dog.roll_over()================================================My dog name is White.My dog is 18 years old!White is now sitting!Whiteroll over!

1.2建立多個執行個體

#!/usr/bin/env pythonclass Dog:    """一次類比小狗的簡單嘗試"""    def __init__(self,name,age):        """初始化屬性name和age"""        self.name = name        self.age = age    def sit(self):        """類比小狗被命令時蹲下"""        print(self.name.title() + " is now sitting!")    def roll_over(self):        """類比小狗被命令時打滾"""        print(self.name.title() + "roll over!")my_dog = Dog('white',18)your_dog = Dog('black',19)my_dog.sit()my_dog.roll_over()your_dog.sit()your_dog.roll_over()==============================================White is now sitting!Whiteroll over!Black is now sitting!Blackroll over!

 

2、使用類和執行個體

①Car類

#!/usr/bin/env pythonclass Car():    """一次類比汽車的簡單嘗試"""    def __init__(self,make,model,year):        """初始化描述汽車的屬性"""        self.make = make        self.model = model        self.year = year    def get_descriptive_name(self):        """返回整潔的描述資訊"""        long_name = str(self.year) + ' ' +self.make + ' ' + self.model        return long_name.title()my_new_car = Car('audi','a4',2017)print(my_new_car.get_descriptive_name())===============================================2017 Audi A4

②給屬性指定預設值

#!/usr/bin/env pythonclass Car():    """一次類比汽車的簡單嘗試"""    def __init__(self,make,model,year):        """初始化描述汽車的屬性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_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.")my_new_car = Car('audi','a4',2017)print(my_new_car.get_descriptive_name())my_new_car.read_odometer()============================================2017 Audi A4This car has 0 miles on it.

③修改屬性的值

  可以以三種不同的方式修改屬性的值:直接通過執行個體進行修改;通過方法進行設定;通過方法進行遞增(增加特定的值)

  • 直接修改屬性的值

  

#!/usr/bin/env pythonclass Car():    """一次類比汽車的簡單嘗試"""    def __init__(self,make,model,year):        """初始化描述汽車的屬性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 23    def get_descriptive_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.")my_new_car = Car('audi','a4',2017)print(my_new_car.get_descriptive_name())my_new_car.read_odometer()===============================================2017 Audi A4This car has 23 miles on it.
  • 通過方法修改屬性的值
#!/usr/bin/env pythonclass Car():    """一次類比汽車的簡單嘗試"""    def __init__(self,make,model,year):        """初始化描述汽車的屬性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_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):        """將里程錶讀數設定為指定的值"""        self.odometer_reading = mileagemy_new_car = Car('audi','a4',2017)print(my_new_car.get_descriptive_name())my_new_car.update_odometer(23)my_new_car.read_odometer()==============================================2017 Audi A4This car has 23 miles on it.

    對Car類所做的唯一修改是添加了方法update_odometer()。這個方法接受一個裡程值,並將其儲存到self.odometer_reading中。

 

3、繼承

  編寫類時,並非總是從空白開始。如果你要編寫的類時另一個現成類的特殊版本,可使用繼承。一個類繼承另一個類時,它將自動獲得另一個類的所有屬性和方法;原有的類稱為父類,而新類稱為子類。子類繼承了其父類的所有屬性和方法,同時還可以定義自己的屬性和方法。

#!/usr/bin/env pythonclass Car():    """一次類比汽車的簡單嘗試"""    def __init__(self,make,model,year):        """初始化描述汽車的屬性"""        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0    def get_descriptive_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 cant roll back an odometer!")    def increment_odometer(self,miles):        self.odometer_reading += milesclass ElectricCar(Car):    """電動車的獨特之處"""    def __init__(self,make,model,year):        """初始化父輩的屬性"""        super().__init__(make,model,year)my_tesla = ElectricCar('tesla','model s',2017)print(my_tesla.get_descriptive_name())==========================================2017 Tesla Model S

  

4、匯入類
#!/usr/bin/env pythonfrom car import Carmy_new_car = Car('audi','a4',2017)print(my_new_car.get_descriptive_name())my_new_car.odometer_reading = 23my_new_car.read_odometer()=======================================2017 Audi A4This car has 23 miles on it.

從一個模組中匯入多個類:

from car import Car,ElectricCar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.