兄嘚们下午好啊!学习自动化测试,我们绕不开python这门语言,更绕不开面向编程这个编程范式。今天让我们深入学习一下Python的面向对象编程(OOP)。面向对象编程有助于编写模块化、易于维护的代码,这在自动化测试和大型项目中非常有用。我们可以从几个关键概念开始:
1. 类和对象
- 类:类是对象的蓝图或模板,用于定义对象的属性和行为。可以把类理解为一种数据类型。
- 对象:对象是类的实例。通过创建对象来使用类的功能。
class Car:
def __init__(self, brand, model):
self.brand = brand
self.model = model
def start_engine(self):
print(f"{self.brand} {self.model} engine started.")
my_car = Car("Toyota", "Corolla")
my_car.start_engine()
2. 属性和方法
- 属性:类的属性可以看作是描述类对象的变量。例如
brand
和model
。 - 方法:类的方法是定义在类中的函数,用于描述类对象的行为。例如
start_engine
方法。
在类的定义中,self
参数用于表示对象自身,便于访问对象的属性和方法。
3. 继承
继承允许一个类继承另一个类的属性和方法,避免重复代码。父类(基类)是被继承的类,子类(派生类)是继承父类的类。
class Vehicle:
def __init__(self, brand):
self.brand = brand
def start(self):
print(f"{self.brand} is starting.")
class Car(Vehicle):
def __init__(self, brand, model):
super().__init__(brand)
self.model = model
def drive(self):
print(f"Driving {self.brand} {self.model}.")
my_car = Car("Toyota", "Corolla")
my_car.start() # 使用父类方法
my_car.drive() # 使用子类方法
在这个例子中,Car
继承了 Vehicle
的属性和方法,super()
调用了父类的 __init__
方法。
4. 封装
封装是一种将数据和方法保护起来的机制,以控制对类属性的访问。通常通过以下方式实现:
- 使用单下划线
_
表示“受保护”属性或方法(仅建议限制访问,但不完全禁止)。 - 使用双下划线
__
表示“私有”属性或方法(Python会“改名”以避免外部直接访问)。
class Account:
def __init__(self, owner, balance):
self.owner = owner
self.__balance = balance # 私有属性
def deposit(self, amount):
self.__balance += amount
def get_balance(self):
return self.__balance
acc = Account("Alice", 1000)
print(acc.get_balance()) # 访问私有属性
5. 多态
多态允许子类通过重写父类的方法以不同的方式实现同一方法。例如:
class Animal:
def sound(self):
pass
class Dog(Animal):
def sound(self):
return "Woof!"
class Cat(Animal):
def sound(self):
return "Meow!"
animals = [Dog(), Cat()]
for animal in animals:
print(animal.sound())
在这里,sound()
方法在 Dog
和 Cat
中实现了不同的行为。
总结
- 类和对象:类是模板,对象是实例。
- 属性和方法:类的变量和函数,用于描述对象。
- 继承:一个类继承另一个类的属性和方法,减少重复代码。
- 封装:使用访问控制保护类的属性和方法。
- 多态:允许同一方法在不同类中表现出不同的行为。
开个小玩笑,最重要一点学号面向对象,以后好找对象[手动狗头]