• python基础(6)-----类和实例


    创建简单的类和实例

    在python中,首字母大写的名称指的是类,这个类定义中括号的内容是空的。

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

    class Dog():  #首字母大写的名称代表的是类,类定义中的括号是空的
        """一次模拟小狗的简单尝试"""
        def __init__(self, name, age): #_init_()是一个特殊的方法,每次创建新实例python都会运行它
            """初始化属性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() + " rolled over!")
    
    my_dog = Dog("zs", 4)  #定义两只小狗
    your_dog = Dog("ls", 5)
    
    print("my dog's name " + my_dog.name.title() + "!")
    print("your dog's name " + your_dog.name.title() + "!")
    my_dog.sit()
    your_dog.roll_over()

    运行结果为:

    my dog's name Zs!
    your dog's name Ls!
    Zs is now sitting.
    Ls rolled over!

    使用类和实例

    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 = str(self.year) + ' ' + self.model + ' ' + self.make
            return long_name.title() #此处必须有返回值
        def read_odometer(self):
            """打印一条汽车里程的消息"""
            print("this car has " + str(self.odometer_reading) + " miles on it.")
    new_car = Car('audi', 'a4', 3)
    print(new_car.get_descriptive_name())
    new_car.read_odometer()

    运行结果为:

    3 A4 Audi
    this car has 0 miles on it.

    修改属性的值

    可以用三种方法修改属性的值;

    (1)直接通过实例进行修改;

    (2)通过方法进行设置;

    (3)通过方法进行递增;

    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 = str(self.year) + ' ' + self.model + ' ' + self.make
            return long_name.title() #此处必须有返回值
        def read_odometer(self):
            """打印一条汽车里程的消息"""
            print("this car has " + str(self.odometer_reading) + " miles on it.")
    new_car = Car('audi', 'a4', 3)
    new_car.read_odometer()
    new_car.odometer_reading = 3 #直接修改属性的值
    new_car.read_odometer()
    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 = str(self.year) + ' ' + self.model + ' ' + self.make
            return long_name.title() #此处必须有返回值
        def update_odometer_reading(self, meter):   #此处添加一个方法,这个方法可以接受里程值,并进行存储。
            self.odometer_reading = meter
        def read_odometer(self):
            """打印一条汽车里程的消息"""
            print("this car has " + str(self.odometer_reading) + " miles on it.")
    
    new_car = Car('audi', 'a4', 3)
    new_car.update_odometer_reading(5) #调用方法,并传递实参5
    new_car.read_odometer()

    有时候需要将属性值递增特定的量,而不是将其设置为一个全新的值。

    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 = str(self.year) + ' ' + self.model + ' ' + self.make
            return long_name.title() #此处必须有返回值
        def incream_odometer_reading(self, meter):   #此处添加一个方法,这个方法可以接受里程值,并将其加入到原有值。
            self.odometer_reading += meter
        def read_odometer(self):
            """打印一条汽车里程的消息"""
            print("this car has " + str(self.odometer_reading) + " miles on it.")
    
    new_car = Car('audi', 'a4', 3)
    new_car.incream_odometer_reading(5) #调用方法,并传递实参5
    new_car.read_odometer()
    new_car.incream_odometer_reading(5) #调用方法,再次传递实参5
    new_car.read_odometer()

    继承

     一个类继承另一个类时,他将自动获得另一个类的所有属性和方法;原有的类称为父类,新的类称为子类;

    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 = str(self.year) + ' ' + self.model + ' ' + self.make
            return long_name.title() #此处必须有返回值
        def read_odometer(self):
            """打印一条汽车里程的消息"""
            print("this car has " + str(self.odometer_reading) + " miles on it.")
    class ELE(Car):   #定义子类时必须在括号内指定父类的名称
        """d电动车的独特之处"""
        def __init__(self, make, model,year):
            """初始化父类的属性"""
            super().__init__(make, model, year) #super()是一个特殊函数,将父类和子类关联起来
    my_ele = ELE('aa', 'ss',4)
    my_ele.read_odometer()
    print(my_ele.get_descriptive_name())
  • 相关阅读:
    【leetcode】二叉搜索树中的众数
    【leetcode】和为零的N个唯一整数
    【leetcode】统计位数为偶数的数字
    【leetcode】寻找数组的中心索引
    【leetcode】找出给定方程的正整数解
    【leetcode】寻找比目标字母大的最小字母
    【leetcode】找出井字棋的获胜者
    输出0~N之间的素数
    判断正整数是否是素数(数据结构课后练习题2.13a)
    052-85
  • 原文地址:https://www.cnblogs.com/jinyuanliu/p/10362583.html
Copyright © 2020-2023  润新知