Python第九章 类

9.1创建和使用类

动手试一试

9-1

class Restaurant():
    def __init__(self,name,type):
        self.name=name
        self.type=type
    def describe_restaurant(self):
        print(self.name+"is a "+self.type+"restaurant")
    def open_restaurant(self):
        print("welcome to"+self.name)
my_restaurant=Restaurant("MIMO","chinese food")
my_restaurant.describe_restaurant()
my_restaurant.open_restaurant()

9-3

class user():
    def __init__(self,first,last,age):
        self.name=first+last
        self.age=age
    def describe_user(self):
        print(self.name+" is a "+str(self.age)+"girl")
    def greet_user(self):
        print("hello "+self.name)
my_friend=user("zhang ","lin jun",19)
my_friend.describe_user()
my_friend.greet_user()

9.2使用类和实例

*修改属性的值

1、直接修改属性

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer=0
    def descript_name(self):
        full_name=str(self.year)+" "+self.make+" "+self.model+" "+str(self.odometer)
        return full_name
    def read_odometer(self):
        print("this car has "+str(self.odometer)+" mile on it")
my_car=Car("audi","a4",2017)
print(my_car.descript_name())
my_car.odometer=88
my_car.read_odometer()

2、通过方法修改属性的值

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.meter=10
    def read_meter(self):
        print("the car has "+str(self.meter)+" on it")
    def update_meter(self,milage):
        if milage >= self.meter:
            self.meter=milage
        else:
            print("you can't roll back an odometer")
my_car=Car("audi","a4","2016")
my_car.update_meter(17)
my_car.read_meter()

3、通过方法对属性的值进行递增

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.meter=10
    def read_meter(self):
        print("the car has "+str(self.meter)+" on it")
    def update_meter(self,milage):
        if milage >= self.meter:
            self.meter=milage
        else:
            print("you can't roll back an odometer")
    def increment_odometer(self,miles):
        self.meter+=miles
my_car=Car("audi","a4","2016")
my_car.update_meter(0)
my_car.read_meter()
my_car.increment_odometer(100)
my_car.read_meter()

9.3

1、重写父类

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer=0
    def descript_car(self):
        full_name=self.make+self.model+str(self.year)
        return full_name

    def read_odometer(self):
        print("this car has"+str(self.year)+"miles on it")
    def update_odometer(self,mileage):
        if mileage>=self.odometer:
            self.odometer=mileage
        else:
            print("you can't roll back an odometer")
    def increment_odometer(self,miles):
        self.odometer+=miles
class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery=90
    def read_odometer(self):
        print("nothing in here")
my_car=ElectricCar("E","F",2018)
my_car.read_odometer()

2、将实例用作属性

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
class Battery():
    def __init__(self,battery_size=90):
        self.battery_size=battery_size
    def descript_battery(self):
        print("the car has a"+str(self.battery_size)+"battery size")
    def get_range(self):
        if self.battery_size==70:
            range=240
        else:
            range=270
        message="this car can go approximately"+str(range)
        message+="miles on a full charge"
        print(message)
class Electric_car(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery=Battery()
my_car=Electric_car("tesla","model",2017)
my_car.battery.descript_battery()
my_car.battery.get_range()

动手试一试

9-6冰淇淋小店

class Restaurant():
    def __init__(self,restaurant_name,restaurant_cuisine):
        self.restaurant_name=restaurant_name
        self.restaurant_cuisine=restaurant_cuisine
        self.number_served=0

    def open_restaurant(self):
        print(self.restaurant_name+" is open")
    def set_number_served(self,number):
        while self.number_served<number:
            self.number_served+=1
class icecreamStand(Restaurant):
    def __init__(self,restaurant_name,restaurant_cuisine):
        super().__init__(restaurant_name,restaurant_cuisine)
        self.flavor=["banana","apple","strawberry"]
    def show_icecream(self):
       for s in self.flavor:
           print(s)
my_icecream=icecreamStand("MIMO","CHINESE FOOD")
my_icecream.show_icecream()

9-7管理员

class Admin():
  def __init__(self,firstname,lastname):
      self.firstname=firstname
      self.lastname=lastname
  def description(self):
      full_description=self.firstname+" "+self.lastname
      print(full_description)
  def greet_user(self):
      print("hello"+" "+self.firstname+" "+self.lastname)
class User(Admin):
  def __init__(self,firstname,lastname):
      super().__init__(firstname,lastname)
      self.privileges=["can add post","can delaete post","can ban user"]
  def show_privileges(self):
      print(self.privileges)
the_user=User("gabby","alice")
the_user.show_privileges()

9-8权限

class Admin():
  def __init__(self,firstname,lastname):
      self.firstname=firstname
      self.lastname=lastname
  def description(self):
      full_description=self.firstname+" "+self.lastname
      print(full_description)
  def greet_user(self):
      print("hello"+" "+self.firstname+" "+self.lastname)
class Privilege():
  def __init__(self):
     self.privileges=["can add post","can delaete post","can ban user"]
  def show_privileges(self):
      print(self.privileges)
class User(Admin):
  def __init__(self,firstname,lastname):
      super().__init__(firstname,lastname)
      self.privileges=Privilege()
the_user=User("gabby","alice")
the_user.privileges.show_privileges()

 9-9电瓶升级

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
    def get_descriptive_name(self):
        long_name=str(self.year)+""+self.make+" "+self.model
        return long_name
class Battery():
    def mybattery(self,battery_size):
        self.battery_size=battery_size

    def get_range(self):
        if self.battery_size==70:
            range = 240
        else:
            range = 270
        message = "this car can go approximately" + str(range)
        message += "miles on a full charge"
        print(message)
    def upgrade_battery(self):
        if self.battery_size!=85:
           self.battery_size=85
class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
        self.battery=Battery()
my_car=ElectricCar("tesla","model",2016)
my_car.battery.mybattery(70)
my_car.battery.get_range()

猜你喜欢

转载自blog.csdn.net/gabby____/article/details/82770758
今日推荐