首先讲一下Markdown格式的文本应该具备的基础内容。
标题
Markdown的标题可以通过在文本前面添加 # 号来实现,# 号的数量表示标题的级别,一级标题一个 # 号,二级标题两个 # 号,以此类推,最多支持六级标题。
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
引用
Markdown的引用可以通过在文本前添加 > 号来实现。
这是一个引用
代码块
Markdown的代码块可以通过在文本前添加 符号来实现,可以在
符号后面指定代码语言,以便于代码高亮。
def hello_world():
print("Hello, World!")
接下来就进入到Python3.5面向对象与继承图文实例详解的攻略了。
什么是面向对象编程
在Python中,一切都是对象,所谓的面向对象编程就是把所有的操作都看作是对对象的操作。面向对象编程的核心在于类的使用,类是对象的模板,可以对对象进行定义和生成。
定义类
在Python中,定义类可以使用关键字 class,类名通常使用驼峰式命名法,定义方法时第一个参数必须是 self,表示对象本身。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def sayHello(self):
print("Hello, my name is {} and I'm {} years old".format(self.name, self.age))
上面的代码定义了一个名为 Person 的类,包含两个属性:name 和 age,以及一个方法:sayHello。其中 init 方法是特殊的构造方法,在生成对象时会被调用。
创建对象
Python中可以使用类来生成对象,生成对象时可以指定类的属性,例如:
p1 = Person("Tom", 18)
p2 = Person("Jerry", 20)
上面的代码创建了两个 Person 类型的对象,分别是 p1 和 p2,分别设置了 name 和 age 属性。
类与继承
继承是面向对象编程的重要特性,它允许我们定义一个类,从而继承父类的所有属性和方法。在Python中,定义继承可以通过在定义类时在类名后面添加括号并指定父类的名称。
class Student(Person):
def __init__(self, name, age, score):
super().__init__(name, age)
self.score = score
def showScore(self):
print("My score is {}".format(self.score))
上面的代码定义了一个名为 Student 的类,继承自 Person 类,并增加了一个属性 score 和一个方法 showScore。
在 init 方法中使用 super() 来调用父类的构造方法,以便于初始化 name 和 age 属性。使用 super() 可以避免硬编码父类名称,从而使代码更灵活。
示例说明
下面给出两个示例:
示例1
假设我们要定义一个动物类,包含两个属性和两个方法。
# 定义Animal类
class Animal:
# 构造方法,初始化name和age属性
def __init__(self, name, age):
self.name = name
self.age = age
# eat方法
def eat(self):
print("{} is eating".format(self.name))
# sleep方法
def sleep(self):
print("{} is sleeping".format(self.name))
这个类中,包含了两个属性 name 和 age,以及两个方法 eat 和 sleep。
接下来,我们定义两个类 Dog 和 Cat,都继承自 Animal 类,分别增加各自的 bark 和 catch 方法。
# 定义Dog类,继承自Animal
class Dog(Animal):
#构造方法,初始化name、age和breed属性
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
# bark方法
def bark(self):
print("{} is barking: Woof woof!".format(self.name))
# 定义Cat类,继承自Animal
class Cat(Animal):
# 构造方法,初始化name、age和color属性
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color
# catch方法
def catch(self):
print("{} is catching the mouse.".format(self.name))
最后,我们创建一个 Dog 对象和一个 Cat 对象,并分别调用它们的各自方法。
# 创建一个Dog对象
dog = Dog("Lucky", 3, "Golden Retriever")
# 调用bark方法
dog.bark()
# 调用eat方法
dog.eat()
# 创建一个Cat对象
cat = Cat("Kitty", 2, "brown")
# 调用sleep方法
cat.sleep()
# 调用catch方法
cat.catch()
示例2
假设我们要定义一个汽车类,包含三个属性和两个方法。
# 定义Car类
class Car:
# 构造方法,初始化品牌、颜色和价格属性
def __init__(self, brand, color, price):
self.brand = brand
self.color = color
self.price = price
# run方法
def run(self):
print("{} is running".format(self.brand))
# stop方法
def stop(self):
print("{} is stopping".format(self.brand))
这个类中,包含了三个属性 brand、color 和 price,以及两个方法 run 和 stop。
接下来,我们定义两个类 Bus 和 Truck,都继承自 Car 类,分别增加各自的 capacity 和 load 方法。
# 定义Bus类,继承自Car
class Bus(Car):
# 构造方法,初始化品牌、颜色、价格和载客量属性
def __init__(self, brand, color, price, capacity):
super().__init__(brand, color, price)
self.capacity = capacity
# load方法
def load(self):
print("Loading {} passengers into the bus.".format(self.capacity))
# 定义Truck类,继承自Car
class Truck(Car):
# 构造方法,初始化品牌、颜色、价格和载重量属性
def __init__(self, brand, color, price, load_capacity):
super().__init__(brand, color, price)
self.load_capacity = load_capacity
# load方法
def load(self):
print("Loading {} tons of goods into the truck.".format(self.load_capacity))
最后,我们创建一个 Bus 对象和一个 Truck 对象,并分别调用它们的各自方法。
# 创建一个Bus对象
bus = Bus("Yutong", "red", 1500000, 45)
# 调用run方法
bus.run()
# 调用load方法
bus.load()
# 创建一个Truck对象
truck = Truck("Foton", "yellow", 2000000, 15)
# 调用stop方法
truck.stop()
# 调用load方法
truck.load()
以上就是 Python3.5面向对象与继承图文实例详解的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3.5面向对象与继承图文实例详解 - Python技术站