网站配色网,网站评论列表模板,河北网站建设电话,淄博铺无忧网络科技有限公司1.类和实例
类#xff1a;类别
实例#xff08;对象#xff09;#xff1a;类型塑造出来的某一个具体的内容
isinstance(对象#xff0c;类) 返回一个对象是否是一个类的实例
# 声明一个整数类的实例10
a int(10)
# a 10
print(type(a), isinstance(a, int))
a flo…1.类和实例
类类别
实例对象类型塑造出来的某一个具体的内容
isinstance(对象类) 返回一个对象是否是一个类的实例
# 声明一个整数类的实例10
a int(10)
# a 10
print(type(a), isinstance(a, int))
a float(5.5)
print(type(a), isinstance(a, float))l0 []
l1 list()
l2 [1, 3, 5, 7, 9]
l3 list([1, 3, 5, 7, 9])
print(type(l0), isinstance(l0, list))
print(type(l1), isinstance(l1, list))
print(type(l2), isinstance(l2, list))
print(type(l3), isinstance(l3, list))# 自定义一个类
class MyClass: # 定义一个MyClass类passmc1 list()
# 声明一个MyClass类的实例
mc1 MyClass() #
print(type(mc1), isinstance(mc1, MyClass)) 2.初始化函数
类抽象的 模板 约定了未来实例的样子
实例具体的 内容由类来限定 拥有具体的数据值类Class是面向对象编程中的核心概念它用来定义对象的抽象模板。类包含了对象的属性属性是描述对象特征的变量和方法方法是能在对象上执行的函数。类定义了对象的结构和行为并且可以作为创建实际对象实例的蓝图。 实例Instance则是类的具体化也称为对象。它是根据类定义创建的实体具有类定义的结构和行为。每个实例都有自己的状态属性值和行为方法调用但是它们都是基于同一个类定义的。
class HandSome:类英俊的人def __init__(self, _name, _age):self 就是未来构造的实例约定未来的实例需要有 name和 ageprint(f我是初始化函数, id(self))# 向self中添加数据nameself.name _name# 向self中添加数据ageself.age _agedef get_name(self):return self.namedef set_name(self, _name):self.name _namedef get_age(self):return self.agedef set_age(self, _age):self.age _age# 类名() 调用类会执行该类的初始化函数
l0 HandSome(毛, 21)
print(id(l0), l0.name, l0.age)
l0.set_name(小毛)
l0.set_age(18)
print(l0.name, l0.age)l1 HandSome(超, 20)
print(id(l1), l1.name, l1.age)
l1.set_name(小超)
l1.set_age(18)
print(l1.name, l1.age)l2 HandSome(泷, 17)
print(id(l2), l2.name, l2.age)
l2.set_name(三叶)
l2.set_age(15)
print(l2.name, l2.age)
分析
这段 Python 代码主要定义了一个名为 HandSome 的类。
类中的 __init__ 方法是一个特殊的初始化方法它在创建类的实例时会自动执行。在这个方法中通过接收 _name 和 _age 两个参数将它们分别赋给实例的 name 和 age 属性从而为每个实例初始化了这两个属性。
get_name 和 get_age 方法用于获取实例中相应的属性值它们简单地返回了实例的 name 和 age 属性。
set_name 和 set_age 方法用于修改实例的 name 和 age 属性值通过传入新的值来更新实例的属性。
在后续的代码中
创建了三个 HandSome 类的实例 l0、l1 和 l2 。
对于 l0 实例 - 首先以 (毛, 21) 作为参数进行初始化此时 l0 的 name 为 毛age 为 21 。 - 然后通过调用 set_name 方法将 name 修改为 小毛通过调用 set_age 方法将 age 修改为 18 。
对于 l1 实例 - 以 (超, 20) 初始化之后修改为 (小超, 18) 。
对于 l2 实例 - 初始化为 (泷, 17) 然后修改为 (三叶, 15) 。
通过这种方式展示了如何创建类的实例并对实例的属性进行初始化、获取和修改的操作。
3.类中封装数据与操作
class Light:def __init__(self):self.state Falseself.colors [红色, 黄色, 蓝色]self.current 0def is_open(self):return self.statedef change_open(self):self.state not self.statedef get_color(self):return self.colors[self.current]def set_color(self):self.current 1if self.current len(self.colors):self.current 0l0 Light()
print(l0.is_open()) # 看灯的状态
l0.change_open() # 改变等的状态
print(l0.state) # 查看灯的状态
print(l0.get_color()) # 获取灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 获取灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 获取灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 获取灯的颜色分析
1. Light 类的定义
class Light:def __init__(self):self.state Falseself.colors [红色, 黄色, 蓝色]self.current 01__init__ 方法初始化了 Light 类的实例。具体来说 2self.state 用来表示灯的状态初始值为 False表示灯是关闭的。 3self.colors 是一个包含三种颜色的列表即 红色、黄色 和 蓝色。 4self.current 初始为 0用来追踪当前显示的颜色索引。
2. 方法定义 def is_open(self):return self.statedef change_open(self):self.state not self.statedef get_color(self):return self.colors[self.current]def set_color(self):self.current 1if self.current len(self.colors):self.current 01is_open() 方法返回 self.state即当前灯的状态True 表示开启False 表示关闭。 2change_open() 方法反转 self.state 的值实现开关灯的功能。 3get_color() 方法返回当前 self.current 索引处的颜色即当前显示的灯的颜色。 4set_color() 方法将 self.current 索引加一实现切换到下一个颜色的功能。如果 self.current 等于 len(self.colors)则将 self.current 重置为 0实现循环切换颜色的效果。
3. 示例代码执行与输出
l0 Light()
print(l0.is_open()) # False初始灯是关闭的
l0.change_open() # 改变灯的状态
print(l0.state) # True查看当前灯的状态
print(l0.get_color()) # 红色获取当前灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 黄色获取当前灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 蓝色获取当前灯的颜色
l0.set_color() # 改变灯的颜色
print(l0.get_color()) # 红色获取当前灯的颜色循环到第一个颜色1 Light 类简单而有效地模拟了一个可以切换状态和颜色的灯的行为。 2使用 state 属性来表示灯的开关状态通过 change_open() 方法进行切换。 3使用 colors 列表和 current 索引来表示和切换灯的颜色通过 get_color() 和 set_color() 方法实现获取和切换颜色的功能。 4代码中展示了如何初始化一个灯的实例改变其状态和颜色并输出相应的信息来验证功能的正确性。 文章适当介绍了面向过程编程在Python中的适用场景和扩展应用。无论是初学者还是有一定经验的开发者都能从这篇博客中获得实用的知识和技能进一步提升在Python编程中的应用水平