python 类知识

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34579060/article/details/87345815
# study python class 2019-02-13


# 创建Dog类, 每个实例都将存储名称和年龄,并赋予其 sit() 蹲下 和 roll_over() 打滚的能力
class Dog():

    def __init__(self, name, age):
        '''初始化属性name和age'''
        self.name = name
        self.age = age

    def sit(self):
        '''模拟蹲下的动作'''
        print(self.name.title() + " now is sitting")

    def roll_over(self):
        '''模拟打滚动作'''
        print(self.name.title() + " now is roll_over")


'''
    _init_() 方法 是一个特殊的方法。
        每当根据Dog类创建新实例时,python都会自动运行它。
    在这个方法的名称中,开头和末尾都各自有两个下划线。
        这是一种约定,旨在避免Python默认方法与普通方法发生名称冲突
    
    _init_(self, name, age) 在这个方法中 self 必不可少,而且还必须位于其他形参前面
    为什么要定义self呢? 因为Python 在调用_init_()方法创建Dog的实例时,将自动传递self,
    self是指向实例本身的引用,让实例能够访问到类中的属性和方法
    
    
'''

# 创建Dog类的实例
dog = Dog('lucy', 20)
dog.roll_over()
dog.sit()

# 访问类的属性
print("my dog name is " + dog.name)
# 注意在 打印int值时 需要将其转成str
print("my dog age is " + str(dog.age))

# 创建多个实例
dog_1 = Dog('cary', 30)
dog_2 = Dog('mata', 30)

print(dog_1.name + " : " + str(dog_1.age))
print(dog_2.name + " : " + str(dog_2.age))


'''
    使用类和实例, 你需要执行修改实例的属性.
        你可以直接修改实例的属性,也可以编写方法修改实例的属性
        
    Car 类
'''


class Car():

    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        # 给属性设置默认值
        self.odometer_reading = 0

    def get_desc_info(self):
        info = self.make + " " + self.model + " " + str(self.year)
        return info.title()

    def get_odometer(self):
        return self.make + " is use : " + str(self.odometer_reading)

    # 更新里程数
    def update_odometer(self, mileage):
        # 可以禁止将里程数往回调
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else :
            print("you cannot roll back an odometer!")

    # 更新里程数, 以递增形式
    def increment_odometer(self, mileage):
        self.odometer_reading += mileage


my_car = Car('audi', 'a4', 2019)
print(my_car.get_desc_info())
print("================打印属性值====================")
print(my_car.get_odometer())

'''
    修改属性值
        一共有三种方法:
        1. 直接修改属性值
        2. 通过方法修改属性值
'''

print("================直接修改属性值====================")
my_car.odometer_reading = 20
print(my_car.get_odometer())

print("================通过方法修改属性值====================")
my_car.update_odometer(30)
print(my_car.get_odometer())

print("================禁止将数值往回调====================")
my_car.update_odometer(10)

print("================以递增的形式====================")
my_car.increment_odometer(20)
print(my_car.get_odometer())
my_car.increment_odometer(20)
print(my_car.get_odometer())

猜你喜欢

转载自blog.csdn.net/qq_34579060/article/details/87345815