1. 程式人生 > 實用技巧 >18、類

18、類

一、類

class Dog:  # 定義了一個類,叫做狗
    def __init__(self, name, age):  # 造物件,需求是年齡和名字
        self.name = name
        self.age = age

    def sit(self):  # 物件:狗坐下的方法函式
        print(f'{self.name} is now sitting')

    def roll_over(self):  # 物件狗打滾的方法函式
        print(f'{self.name} rolled over!')


my_dog = Dog('willie', 6)  # 造一個狗,給物件傳引數,名字和年齡
print(f"my dog's name is {my_dog.name}.")  # 列印,我的狗的名字是。。。
print(f"my dog is {my_dog.age} years old.")  # 列印,我的狗的年齡是。。。即剛剛傳入的引數

類的訪問屬性

res = my_dog.name
print(res)

類的呼叫方法

my_dog.sit()
my_dog.roll_over()

修改屬性的值

1、直接修改

​ 這種修改方法LOW而且不安全,可以在類中開一個函式的小功能,來修改

2、新增函式功能修改

class 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 = f"{self.year} {self.make} {self.model}"
        return long_name.title()

    def read_odometer(self):
        print(f'this car has {self.odometer_reading} miles on it')

    def update_odometer(self, mileage):
        # self.odometer_reading = mileage
        if mileage >= self.odometer_reading:  # 可以增加禁止回撥的小功能
            self.odometer_reading = mileage
        else:
            print('you can not roll back an odometer')


my_new_car = Car('audi', 'a4', 2019)

print(my_new_car.get_descriptive_name())

# 修改屬性的值
my_new_car.update_odometer(23)  # 在類中,為物件定義一個更改的功能方法,來修改公里數
my_new_car.update_odometer(21)
my_new_car.read_odometer()