python知识点复习
文章平均质量分 57
患得患失949
这个作者很懒,什么都没留下…
展开
-
Python_继承threading实现自己的线程类——六月十四
方法获取锁,然后判断电影票的数量是否大于0。如果大于0,则模拟售票过程,将电影票数量减1,并打印出售票信息。否则,打印出票已售罄的信息,释放锁并结束线程。方法等待售票员线程执行完成,确保主线程等待所有售票员线程执行完毕后再继续执行。类并重写其中的方法,我们可以自定义线程类,并根据具体需求编写线程的执行逻辑。类来创建自定义的线程类,并重写其中的方法。下面是一个形象的例子,用来模拟电影院售票系统的并发处理。方法,并在执行过程中进行售票和打印。,表示电影票的数量,初始为100。类创建线程时,可以通过继承。原创 2023-06-14 20:54:58 · 245 阅读 · 0 评论 -
Python_文件不关闭的后果——建议用with语句自动管理文件的关闭——六月十四
文件锁定:某些操作系统(如Windows)在文件打开状态下可能会将文件锁定,防止其他程序对该文件进行操作。如果不关闭文件,那么这些文件句柄将一直保持打开状态,最终会导致系统资源的浪费。内存占用增加:如果打开的文件比较大,而且没有关闭文件,那么文件的内容将会一直保存在内存中,导致内存占用增加,可能会影响程序的性能和稳定性。如果不关闭文件,缓冲区中的数据可能无法完全写入文件,导致数据丢失或不完整。综上所述,为了确保程序的健壮性和资源的正常释放,建议在使用完文件后及时关闭文件。方法来关闭文件,或者使用。原创 2023-06-14 19:54:57 · 1483 阅读 · 0 评论 -
Python_使用 `@property` 包装器来实现属性的 getter 和 setter 方法——实现对属性的安全访问。——六月十四
这个方法被定义为属性的 getter 方法,用于获取属性的值。同时,我们可以为属性定义一个对应的 setter 方法,用于设置属性的值。我们可以在 setter 方法中添加任意的额外逻辑操作或数据验证,确保属性的值符合预期,并提供更安全和方便的属性访问方式。包装器,我们将这两个属性的访问方式定义为 getter 方法,并在对应的 setter 方法中进行数据验证。包装器,我们可以将属性访问的控制权交给 getter 和 setter 方法,从而实现对属性的安全访问。在访问属性时,我们可以直接使用。原创 2023-06-14 19:31:03 · 203 阅读 · 0 评论 -
Python_限制类实例可以绑定的属性——__slots__——六月十四
可以有效地减少实例的内存消耗,因为它告诉解释器不要为实例的所有属性创建字典,而是使用固定大小的数组来存储这些属性。是一种用于限制类实例属性的机制,它可以提高内存效率并约束对象属性的动态性。在设计类时,如果你希望限制实例可以绑定的属性,可以考虑使用。变量并指定允许绑定的属性名称,可以限制实例只能拥有指定的属性,而不能动态地绑定其他属性。,我们限制了实例可以绑定的属性,提高了内存效率并约束了对象属性的动态性。是一个特殊的类变量,用于限制类实例可以绑定的属性。变量,那么子类的实例可以绑定子类和父类中定义的属性。原创 2023-06-14 19:06:16 · 114 阅读 · 0 评论 -
Python_窗口设计——出入栈控制控件的前进后退
使用Stack的方式对GUI组件进行入栈和出栈操作是一种常见且有效的方式,用于控制界面的显示、隐藏、前进和后退逻辑。:由于组件入栈时并没有被销毁,而是被隐藏起来,因此可以保留组件的状态,包括用户输入的数据、滚动位置等,方便用户返回时继续操作。:通过入栈和出栈操作,可以自由控制组件的显示和隐藏,实现复杂的导航逻辑,如前进、后退、跳转等。:通过入栈和出栈控制组件的生命周期,可以更好地管理资源的分配和释放,避免资源泄露和浪费。这种方式可以实现基于栈的导航和组件管理,使得用户界面的交互更加灵活和可控。原创 2023-06-04 11:16:40 · 135 阅读 · 0 评论 -
Python_使用datetime库实现对时间的获取
`datetime`是Python标准库中的一个模块,提供了处理日期和时间的功能。原创 2023-06-03 13:42:09 · 2402 阅读 · 0 评论 -
Python_ hasattr() 和 getattr() 函数来检查和获取对象的属性。
`hasattr()` 和 `getattr()` 是 Python 内置函数,用于处理对象的属性。原创 2023-06-03 13:23:13 · 79 阅读 · 0 评论 -
Python_`@classmethod` 和 `@staticmethod`的区别
- `@classmethod` 装饰的方法**可以访问类的属性和方法**,也可以通过类调用和通过实例调用。 - `@staticmethod` 装饰的方法**不能直接访问类的属性和方法,也不能访问实例的属性和方法,它与类和实例无关。**原创 2023-06-03 13:18:04 · 85 阅读 · 0 评论 -
Python_访问限制
需要注意的是,这些访问限制并不是强制执行的,而是一种约定俗成的规范。在Python中,可以通过直接访问私有成员或修改受保护成员来突破访问限制,但这通常不被推荐,因为它会破坏封装性和代码可维护性。最佳实践是使用公有接口来访问和操作类的成员。虽然无法直接访问私有成员,但可以通过特殊的命名规则来间接访问。私有成员的名称会在前面添加一个类名前缀和一个下划线。原创 2023-06-02 13:31:14 · 277 阅读 · 0 评论 -
Python_类变量与成员变量的区别
类变量和成员变量(实例变量)在Python中具有不同的作用和特点。作用范围访问方式生命周期共享性选择使用类变量或成员变量取决于具体的需求和设计。total_carsnameage需要注意的是,当类变量与成员变量同名时,类变量会被隐藏。在实例对象中访问同名变量时,优先访问成员变量。如果需要访问类变量,可以使用类名进行访问。原创 2023-06-02 13:14:48 · 1227 阅读 · 0 评论 -
Python_抽象方法——@abc.abstractmethod的使用与解释
抽象方法是一个在抽象基类中声明但没有实现的方法,它只包含方法的声明,没有具体的实现代码。抽象方法的存在主要是为了定义一个接口,规定子类必须实现该方法。**抽象方法的作用是定义类的接口和规范,确保子类具备必要的方法实现,增强了代码的可读性和可维护性。抽象基类本身不能被实例化,只能作为其他类的基类来定义接口。子类继承抽象基类后,必须实现抽象基类中的所有抽象方法,才能被实例化。是 Python 中的一个装饰器,用于声明抽象方法(abstract method)。原创 2023-06-02 13:05:15 · 3877 阅读 · 0 评论 -
Python_继承——经典题
python继承经典题,附带练习原创 2023-06-01 11:49:37 · 2059 阅读 · 0 评论 -
Python_应用程序设计基本内容
请注意,这只是每个方面的一些示例,具体要学习的内容可能会根据你的项目需求和个人兴趣而有所不同。建议在学习过程中结合实际项目和实践,以加深理解和掌握。原创 2023-06-01 11:06:57 · 172 阅读 · 0 评论 -
Python_进阶_使用`super()`函数调用父类的构造函数
在Python中,可以使用函数来调用父类的构造函数(方法)。通过使用函数,可以确保在子类的构造函数中调用父类的构造函数,以便执行父类的初始化逻辑。以下是使用函数继在上述示例中,继承自。子类的构造函数中使用调用父类的构造函数,并传递相应的参数。这样,父类的初始化逻辑会被执行,子类也可以在自己的构造函数中进行额外的初始化操作。注意,在使用函数调用父类的构造函数时,无需显式传递参数,它会自动被传递。同时,函数只能在子类的方法中使用。原创 2023-06-01 10:58:39 · 1361 阅读 · 0 评论 -
Python_传递参数规则
因此,根据参数的类型(可变或不可变),函数对参数的修改是否会影响到原始对象。对于不可变类型,函数内部的修改只是在函数作用域内有效,不会影响到原始对象。对于可变类型,函数内部的修改会影响到原始对象。当你传递参数给函数时,参数的传递方式取决于参数的类型。参数进行了修改,但这并没有影响到原始的。参数进行了修改,这影响到了原始的。在上述示例中,函数内部对。在上述示例中,函数内部对。原创 2023-05-31 11:23:45 · 143 阅读 · 0 评论 -
Python_类方法作用_对比实例方法和静态方法
实例方法用于操作实例的状态,类方法用于执行类级别的操作和创建对象,而静态方法用于与类相关的操作和提供实用函数。:类函数通常用于执行与整个类相关的操作,而不是与特定实例相关的操作。在Python中,类中的类函数(也称为类方法)是定义在类内部的函数,与实例方法和静态方法相对应。通过类函数,可以在不创建类实例的情况下操作类的属性和方法。类函数的使用可以增强类的灵活性和功能性,同时提供了一种在类级别上操作和管理的机制。:类函数可以用于提供与类相关的实用工具函数,这些函数可能不需要实例化类对象。原创 2023-05-31 11:08:32 · 251 阅读 · 0 评论 -
正则表达式
正则表达式是一种强大的模式匹配工具,它可以用来在文本中进行高级的字符串匹配和搜索操作。正则表达式由普通字符(例如字母、数字和符号)和特殊字符(称为元字符)组成。这些是正则表达式中一些基础的元字符和匹配规则。正则表达式还有更多高级的特性和元字符,可以用于更复杂的匹配操作。希望这些示例能帮助您理解基础的正则。:表示匹配前面的元素零次或多次。例如,正则表达式 "ab。原创 2023-05-31 10:48:16 · 210 阅读 · 0 评论 -
Python_多线程总结
需要注意的是,在多线程编程中,线程之间共享相同的进程空间,因此对共享资源的访问需要进行适当的同步和保护,以避免竞争条件和数据不一致等问题。因此,在实际开发中,需要仔细考虑线程间的同步和协作,并使用适当的线程安全机制来确保程序的正确性和稳定性。总之,线程安全性是多线程编程中的重要问题,需要注意并发访问共享资源时可能出现的问题,并采取适当的同步和协作机制来确保线程的正确性和一致性。假设有两个线程,每个线程需要获取对方已经占用的资源才能继续执行,但它们同时持有自己的资源不释放,导致相互等待,无法继续执行。原创 2023-05-30 11:39:06 · 182 阅读 · 0 评论 -
Python_高阶技巧_闭包的用途和用法 掌握nonlocal关键字的作用
nonlocal关键字用于在闭包中修改外部函数的变量。当内部函数需要修改外部函数的变量时,可以使用nonlocal关键字声明该变量,以指示其为外部函数的变量,而非创建一个新的局部变量。通过闭包和nonlocal关键字的结合使用,可以实现在函数内部对外部变量的访问和修改,增加了函数的灵活性和可扩展性。通过闭包,我们可以保持并修改外部变量的状态,实现了状态的持久化和更新。内部函数可以访问外部函数的变量。是外部函数,它定义了内部函数。时,内部函数会修改外部变量。原创 2023-05-30 11:18:42 · 128 阅读 · 0 评论 -
Python中_模块导入_语法
在这些示例中,我们使用了不同的导入语法来导入`math`模块,并使用了其中的一些功能。请注意,在实际开发中,建议使用明确的导入方式,避免使用`import *`这种方式导入所有功能,以免命名冲突或不必要的代码依赖。使用这种方式可以直接导入模块中指定的类、变量、方法等,而无需通过模块名来访问。导入后可以直接使用导入的名称。通过这种方式导入模块,可以使用模块中定义的类、变量、方法等,需要通过模块名来访问。通过给模块起一个别名,可以使用别名来访问模块中的功能,可以简化代码,提高可读性。import 模块名。原创 2023-05-30 11:06:37 · 230 阅读 · 0 评论 -
Python_使用第三方库pymysql进行MySQL数据库的操作
在Python中使用第三方库pymysql可以进行MySQL数据库的操作。pymysql是一个纯Python实现的MySQL客户端库,可以方便地与MySQL数据库进行交互。这是一个基本的框架,您可以根据具体的需求编写更复杂的代码。希望这个指南可以帮助您在Python中使用pymysql库执行SQL语句进行MySQL数据库操作。首先,您需要使用pip命令安装pymysql库。方法执行SQL语句,可以传递SQL语句作为参数。在完成所有数据库操作后,使用连接对象的。方法提交更改,并使用。原创 2023-05-29 11:55:14 · 189 阅读 · 0 评论 -
Python_面向对象_总结
Python面向对象编程是一种强大而灵活的编程范式。它将现实世界的事物抽象为类,类具有属性和方法,用于描述事物的特征和行为。通过创建对象,基于类的设计图纸,我们可以实例化对象并使用对象来完成具体的工作。面向对象编程的核心概念包括封装、继承和多态。封装使得对象的内部细节对外部是不可见的,外部只能通过对象的公共接口来访问和操作数据。继承允许子类继承父类的属性和方法,并在此基础上进行扩展和定制。多态通过使用父类定义声明,而实际传入不同子类对象进行工作,实现同一行为的不同状态原创 2023-05-28 11:20:55 · 801 阅读 · 0 评论 -
Python_函数进阶_总结
在函数中,使用return语句返回多个值,多个值之间用逗号进行分隔。在函数调用时,可以使用多个变量按照返回值的顺序接收这些值。需要注意的是,此外,返回的多个值可以是不同类型的数据,例如整数、字符串、列表等。只需按照需要在函数中使用return返回相应的数据即可。在函数调用时,可以根据返回值的类型进行相应的处理。请注意,在编写代码时,建议为返回的多个值命名,使代码更易读和维护。原创 2023-05-27 12:55:04 · 98 阅读 · 0 评论 -
Python中_模块导入_语法
使用这种方式可以直接导入模块中指定的类、变量、方法等,而无需通过模块名来访问。在Python中,要使用一个模块中的功能,需要先将该模块导入到当前的代码环境中。使用这种方式可以导入模块中的所有功能,包括类、变量、方法等。请注意,在实际开发中,建议使用明确的导入方式,避免使用。通过这种方式导入模块,可以使用模块中定义的类、变量、方法等,需要通过模块名来访问。通过给模块起一个别名,可以使用别名来访问模块中的功能,可以简化代码,提高可读性。使用这种方式可以给导入的功能起一个别名,使其在代码中更易于识别和使用。原创 2023-05-26 13:53:44 · 159 阅读 · 1 评论 -
Python中异常处理传递性
用于进行两个数的除法运算,并捕获了除以零的异常(ZeroDivisionError)。当除数为零时,该函数会抛出一个新的值错误异常(ValueError)。注意,如果在`main`函数中也没有捕获处理异常,那么程序会抛出未处理的异常并终止运行,同时会打印异常信息和堆栈跟踪信息。如果所有函数都没有捕获处理异常,程序就会抛出未处理的异常并终止运行,同时会打印异常信息和堆栈跟踪信息。main没有收到异常,因为所有异常都被处理了。如果调用函数的地方也没有捕获处理异常,那么。函数,捕获处理异常。原创 2023-05-26 13:44:00 · 291 阅读 · 1 评论 -
python中单继承和多继承
在第二个示例中,徒弟类`Prentice`继承了学校类`School`和师父类`Master`,因此可以访问两者的属性`kongfu`并调用两者的方法`make_cake()`。在你提供的示例中,徒弟类`Prentice`继承了师父类`Master`和学校类`School`,因此徒弟类可以使用两者的属性和方法。在第一个示例中,徒弟类`Prentice`继承了师父类`Master`,因此可以访问师父类的属性`kongfu`并调用师父类的方法`make_cake()`。原创 2023-05-26 13:15:37 · 121 阅读 · 1 评论 -
Python中,__xx__()的函数的总结
初始化方法,在创建对象时调用,用于初始化对象的属性。字符串表示方法,返回对象的字符串表示形式,通常用于打印对象或转换为字符串时调用。表示方法,返回对象的可打印字符串表示形式,通常用于调试和开发阶段。长度方法,返回对象的长度,通常用于内置函数`len()`调用。索引访问方法,实现对象的索引访问,用于通过索引获取对象的元素。索引赋值方法,实现对象的索引赋值,用于通过索引设置对象的元素。删除元素方法,实现通过索引删除对象的元素。迭代器方法,返回一个迭代器对象,用于支持对象的迭代操作。原创 2023-05-26 09:37:19 · 571 阅读 · 1 评论