zoukankan      html  css  js  c++  java
  • 一天快速入门Python语法基础之类与继承

    #一、创建Dog类
    class Dog():
    #每当你根据Dog类创建新实例,Python都会自动运行它,开头和末尾各有两个下划线,这时一种约定,避免和其他方法名混淆
    #形参self必不可少,必须位于前面,Python调用_init_来创建实例是,将自动传入实参self,让实例能够访问类中的方法和属性
    #self会自动传递,因此我们不需要传递它,但需给name和age两个形参传值
        def __init__(self,name,age):
            self.name=name
            self.age=age
        def sit(self):
            print(self.name)
    
        def roll_over(self):
            print(self.name)
    
    #二、根据类创建实例
    #Python使用实参Tom和16调用Dog类中的方法_init_()创建一个表示特定小狗的示例,并使用用户传的值来设置属性name和age
    #方法_init_并未显示地包含return语句,但Python会自动返回一个表示小狗的实例,我们将这个实例存储在my_dog中,
    #my_dog指的是根据类创建的实例
    my_dog=Dog('Tom',8)
    print(my_dog.name)
    print(str(my_dog.age))
    #Python先找到实例my_dog,再查找与这个实例相关联的属性name
    #根据Dog类创建实例后,就可以使用.来调用Dog类中定义的方法
    #三、给属性指定默认值
    #类中每个属性都必须有初始值,哪怕这个值是0或空字符串,如果在方法_init_中设置了某个属性的初始值,就不需包含为他提供初值的
    class Car():
    
      def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer=0
    
      def get_name(self):
          long_name=str(self.year)+self.make+self.model
          return long_name.title()
    
      def read_odometer(self):
        print(str(self.odometer))
    my_car = Car('ggg','t5',2055)
    print(my_car.get_name())
    my_car.read_odometer()
    #四、修改属性的值
    #1.直接修改属性的值
    #要修改属性的值,最简单的方法是通过实例直接访问它
    class Car():
    
      def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer=0
    
      def get_name(self):
          long_name=str(self.year)+self.make+self.model
          return long_name.title()
    
      def read_odometer(self):
        print(str(self.odometer))
    my_car = Car('ggg','t5',2055)
    print(my_car.get_name())
    my_car.odometer=23 #通过句点来直接访问并设置属性odometer为23
    my_car.read_odometer()
    
    #2.通过方法修改属性的值
    #如果有替你更新属性的方法,你就无需直接访问属性,而可将值传递给一个方法,由它在内部进行更新
    class Car():
    
      def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer=0
    
      def get_name(self):
          long_name=str(self.year)+self.make+self.model
          return long_name.title()
    
      def read_odometer(self):
        print(str(self.odometer))
    
      def updata_odometer(self,mileage):
          self.odometer=mileage
    
    my_car=Car('da','r4','3333')
    print(my_car.get_name())
    my_car.updata_odometer(33)
    my_car.read_odometer()
    #五、继承
    #子类继承其父类的所有属性和方法,同时还可以定义自己的属性和方法
    #1.子类方法的__init__()
    class Car():
        def __init__(self, make, model, year):
            self.make = make
            self.model = model
            self.year = year
            self.odometer = 0
    
        def get_name(self):
            long_name = str(self.year)+self.make+self.model
            return long_name.title()
    
        def read_odometer(self):
            print(str(self.odometer))
        def update_odometer(self, mileage):
            if mileage>= self.odometer:
                self.odometer = mileage
            else:
                print("warning")
    
        def increment_odometer(self, miles):
            self.odometer += miles
    
    class ElectricCar(Car):  #继承Car类
        def __init__(self, make, model, year):
            super().__init__(make, model, year)
    
    my = ElectricCar('dada','aaf',777)
    print(my.get_name())
    
    #创建子类时父类必须包含在当前文件中,且位于子类前
    #定义子类时必须在括号内指定父类名
    #子类中第一个__init__方法接受Car实例所需的信息
    #super()是一个特殊函数,帮助Python将父类和子类关联起来,让ElectricCar实例包含父类的所有属性,父类也称为超类(superclass)

     参考:《Python编程:从入门到实践》,本书作者Eric Matthes,译者袁国忠,由人民邮电出版社于2016年7月出版

    本博客为博主的学习笔记,不作任何商业用途。
  • 相关阅读:
    python实用技巧总结(二)
    python实用技巧总结(一)
    windows下tensorflow/objectdetection API(SSD)环境搭建(基于tensorflow1.14和python3.6)
    理解Python函数和方法
    理解迭代器和可迭代对象
    Anaconda安装报错
    Windows下命令行Git无法显示中文问题解决方案
    web服务器/HTTP协议基础
    Unity3D第三人称摄像机
    Ubuntu 18.04 安装 mysql
  • 原文地址:https://www.cnblogs.com/guo7533/p/8594105.html
Copyright © 2011-2022 走看看