目录
实际场景运用Q:
好久没有玩封装有点手生 遇到下面一个问题 大家可以一起看下 并且共同复习下
在封装的时候 下面代码中AutomationPage中封装了各个元素得定位,但是在navtosysytem得方法中引用UIelem的时候无法引用成功
在这段代码中UIelem
是在 __init__
方法内部定义的一个局部变量,而不是作为类的属性。由于 UIelem
是一个局部变量,它在 __init__
方法之外是不可访问的。这就是为什么在 nav_to_system
方法中尝试使用 self.UIelem
时无法引用成功的原因。要解决这个问题,需要将 UIelem
定义为一个实例属性。
那怎么将该方法定义成实例属性呢:
在Python编程中,类的属性用于存储与类或类的实例有关的数据。这些属性也称为字段或成员变量。类属性分为两种:类属性(静态属性)和实例属性。
1. 实例属性
实例属性是与类的每个对象(实例)关联的。每创建一个类的实例,实例属性就会被初始化。这些属性通常在 __init__
方法中通过 self
参数定义。
定义与使用
class Car:
def __init__(self, color, model):
self.color = color # 实例属性
self.model = model # 实例属性
# 创建类的实例
my_car = Car('Red', 'Toyota')
print(my_car.color) # 输出: Red
print(my_car.model) # 输出: Toyota
特点
- 每个实例都有自己的独立副本。
- 通过
self
关键字定义,可以通过实例访问和修改。 - 用于存储与具体对象实例有关的数据。
2. 类属性
类属性属于类本身,而不是具体的类实例。类属性在所有实例之间共享。
定义与使用
class Car:
wheels = 4 # 类属性
def __init__(self, color, model):
self.color = color
self.model = model
# 访问类属性
print(Car.wheels) # 输出: 4
# 所有实例共享类属性
car1 = Car('Red', 'Toyota')
car2 = Car('Blue', 'Honda')
print(car1.wheels) # 输出: 4
print(car2.wheels) # 输出: 4
# 修改类属性
Car.wheels = 3
print(car1.wheels) # 输出: 3
print(car2.wheels) # 输出: 3
特点
- 每个实例共享相同的类属性,修改类属性会影响所有实例。
- 通常用于存储所有实例共享的数据。
- 可以通过类名或实例访问。
实际运用
类和实例属性在实际应用中协同使用,使得类结构能够准确表达数据的层次和逻辑关系。
- 实例属性:适用于描述与具体实例相关的数据,例如一个具体学生的姓名、分数等。
- 类属性:适合描述所有实例的通用特征或共享的资源,例如某个学校的校名、公司所有员工的总人数等。
通过合理使用类和实例属性,我们可以创建结构清晰、逻辑严谨的类和对象模型,以适应不同的编程需求。
实际场景运用A:
okay 复习完之后我顺手修改了下代码 现在就可以自动识别到我这个类属性啦~~