Python 成长笔记

Python 类

2018-01-26  本文已影响9人  赵者也
  1. 第一个实例:
class Dog:
    """模拟小狗"""

    def __init__(self, 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("Will", 4)
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
my_dog.roll_over()

your_dog = Dog('Jim', 3)
print("\nYour dog's name is " + my_dog.name.title() + ".")
print("Your dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
my_dog.roll_over()
  1. 继承
# -*- coding: utf-8 -*-
# Created by: ZhaoDongshuang
# Created on: 18-1-26


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.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 can't roll back an odometer!")

    def increment_odometer(self, miles):
        self.odometer_reading += miles


class ElectricCar(Car):  # 继承时指定父类名称
    def __init__(self, make, model, year):
        """ 初始化父类 """
        super().__init__(make, model, year)
        """ 定义子类新属性 """
        self.battery_size = 70

    def describe_battery(self):
        """ 打印电瓶容量 """
        print("This car has a " + str(self.battery_size) + "-kWh battery.")


def test_electric_car():
    car_tesla = ElectricCar('tesla', 'model s', 2016)
    print(car_tesla.get_descriptive_name())
    car_tesla.describe_battery()
  1. 将实例用作属性
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.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 can't roll back an odometer!")

    def increment_odometer(self, miles):
        self.odometer_reading += miles


class Battery:
    def __init__(self, battery_size=70):
        self.battery_size = battery_size

    def describe_battery(self):
        print("This car has a " + str(self.battery_size) + "-kWh battery.")

    def get_range(self):
        """ 打印一条消息,指出电瓶的续航里程 """
        drive_range = 300
        if self.battery_size == 70:
            drive_range = 240
        elif self.battery_size == 85:
            drive_range = 270
        message = "This car can go approximately " + str(drive_range) + \
                  " miles on a full charge."
        print(message)


class ElectricCar(Car):  # 继承时指定父类名称
    def __init__(self, make, model, year):
        """ 初始化父类 """
        super().__init__(make, model, year)
        """ 定义子类新属性 """
        self.battery = Battery()


def test_electric_car():
    car_tesla = ElectricCar('tesla', 'model s', 2016)
    print(car_tesla.get_descriptive_name())
    car_tesla.battery.describe_battery()
  1. 从一个模块中导入多个类
from car import Car, ElectricCar
  1. 导入整个模块
import car
  1. 导入模块中的所有类
from module_name import *
  1. 类编码风格建议

本文参考自 《Python 编程:从入门到实践

上一篇 下一篇

猜你喜欢

热点阅读