创建Dog 类
方法__init__(),Python 自动调用,约定!!!
#创建Dog 类
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self):
print(f"{self.name} is now sitting.")
def roll_over(self):
print(f"{self.name} rolled over.")
#根据类创建实例
my_dog = Dog('Willie', 6)
#访问属性
print(f"My dog's name is {my_dog.name}")
#调用方法
my_dog.sit()
使用类和实例
class Car(object):
"""docstring for 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 = f"{self.year} {self.make} {self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {self.odometer_reading} miles on it.")
def update_odometer(self, mileage):
self.odometer_reading = mileage
my_car = Car('audi', 'a4', 2019)
print(my_car.get_descriptive_name())
##直接修改属性值
my_car.odometer_reading = 55
my_car.read_odometer()
##通过方法修改属性的值
my_car.update_odometer(66)
my_car.read_odometer()
继承
class Car(object):
"""docstring for 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 = f"{self.year} {self.make} {self.model}"
return long_name.title()
def read_odometer(self):
print(f"This car has {self.odometer_reading} miles on it.")
def update_odometer(self, mileage):
self.odometer_reading = mileage
def fill_gas_tank(self, volume):
self.volume = volume
class ElectricCar(Car):
"""docstring fos ElectricCar"""
def __init__(self, make, model, year, battery_size=75):
#初始化父类的属性
super().__init__(make, model, year)
#子类定义属性
self.battery_size = battery_size
#子类定义方法
def describe_battery(self):
print(f"This car has a {self.battery_size}-kWh battery.")
#覆盖父类方法
def fill_gas_tank(self, volume):
print("This car does't need a gas tank.")
my_tesla = ElectricCar('tesla', 'model s', '2019')
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
my_tesla.fill_gas_tank(50)
导入类
#导入类
from car import Car, ElectricCar
my_beetle = Car('volkswagen', 'beetle', 2019)
my_tesla = ElectricCar('tesla', 'roadster', 2020)
#导入模块
import car
my_beetle = car.Car('volkswagen', 'beetle', 2019)
本文介绍了Python中的面向对象编程,包括如何创建类、实例化对象、访问属性和调用方法。通过`Dog`和`Car`类展示了类的构造函数`__init__`,以及如何定义和调用方法如`sit()`和`roll_over()`。此外,还演示了如何通过`update_odometer()`方法更新汽车的里程读数。进一步讨论了类的继承,例如`ElectricCar`类从`Car`类继承并添加了`describe_battery()`方法和覆盖了`fill_gas_tank()`方法。最后,讲解了如何导入已定义的类。
1916

被折叠的 条评论
为什么被折叠?



