1 创建Dog类
class Dog():
"""一次模拟小狗的简单尝试"""
def __init__(self,name,age):
"""初始化属性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!")
每个类被创建时都会自动运行方法__init__()
2 访问属性,用类实例+句点+属性名
my_dog = Dog('willie',6)
print("My dog's name is " + my_dog.name.title())
print("My dog is "+str(my_dog.age)+" years old")
3 调用方法,也是用类实例+句点+函数名
my_dog = Dog('willie',6)
my_dog.sit()
my_dog.roll_over()
4 类有几个属性是在__init__()方法里定义好的,不是方法的形参,而是方法内出现的self.xxx
5 python支持类继承,先执行父类的__init__,再执行子类的__init__。
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()
class EletricCar(Car): # 继承Car类
def __init__(self,make,model,year):
super().__init__(make,model,year)
my_tesla = EletricCar('tesla','model s',2016)
print(my_tesla.get_descriptive_name())
- 创建子类时,父类必须包含再当前文件中,父类必须要在子类前面声明好
- 定义子类时,必须在括号内指定父类的名称
- super() 表示父类
6 重写父类的方法,即子类中定义一个与父类方法同名的方法
7 从一个模块中导入多个类,如from car import Car , EletricCar