- 博客(24)
- 问答 (1)
- 收藏
- 关注
原创 Python中的访问限制
本文介绍了Python面向对象编程中的访问限制机制。通过Person类示例,展示了直接暴露属性的风险(如年龄被赋负值),进而提出解决方案:1)提供专用方法(如set_age())进行属性修改;2)使用双下划线前缀定义私有变量(如__age)和方法。文中详细解释了私有化的实现原理(变量名被改写为_类名__变量名),并演示了如何突破这种限制直接访问私有成员。最后指出Python的私有化本质是通过名称改写实现的约定性保护,而非绝对安全机制。
2025-07-23 22:58:34
868
原创 面向对象中对实例方法和self关键字的理解
在Python面向对象编程中,self代表类的实例对象本身。虽然self不是关键字,但已成为约定俗成的参数名。通过实例化对象调用方法时无需传入self,Python会自动传递当前实例。例如Person类中,__init__初始化实例变量,say_hello方法通过self访问这些变量,确保每个实例拥有独立属性。self机制实现了对象间的数据隔离,是Python类与对象交互的核心设计。
2025-07-14 00:40:43
231
原创 在面向对象中,对于类变量和实例变量的理解
摘要:本文介绍了面向对象编程中的类变量和实例变量。类变量定义在类中,所有实例共享;实例变量通过self绑定,仅属于特定实例。访问方式为:类变量用类名.变量名,实例变量用对象名.变量名。修改时可直接赋值或通过self.__class__修改类变量。文中还解释了实例变量的查找机制(先实例后类)和__dict__属性,展示了变量存储结构。通过代码示例演示了定义、访问及修改操作,帮助理解二者的区别和使用场景。
2025-07-09 23:52:42
413
原创 在python面向对象中,对于__init__方法的理解
Python中的__init__方法是类的构造函数(初始化方法),属于魔术方法的一种。当实例化对象时,该方法会自动执行,用于初始化对象状态。文中通过Person类的示例演示了__init__的自动调用特性,以及如何在初始化时设置对象属性(如name、age等),后续实例方法可直接使用这些属性。该方法体现了面向对象编程中对象初始化的自动化特性,是Python类定义的重要部分。(150字)
2025-07-08 21:18:46
265
原创 鼠标右键新建没有word\ppt\excel,该这么办?
新装Office后右键菜单缺失新建Word/PPT/Excel选项,常见原因是WPS Office未卸载导致的注册表冲突。用户发现卸载WPS后即可恢复右键新建功能,无需复杂操作。若问题仍存在,再考虑修改注册表。建议遇到同类问题时优先尝试卸载WPS,此方法比直接修改注册表更简便安全。
2025-07-06 12:44:40
515
原创 面向对象中的类和对象究竟是什么?
面向对象编程(OOP)是将实物抽象为模型进行编程。它具有封装、继承、多态三大特性。类是一类事物的抽象(如"人"),包含共同属性(年龄、身高等);对象是类的具体实例(如"张三"),其属性被具体赋值。类相当于模具,对象是根据模具创建的具体产品。
2025-07-06 00:01:35
195
原创 删除二叉树的子树:递归算法删除根结点值为x的子树
对于当前节点,依次递归删除其左子树和右子树中值为子树根节点值的子树。如果当前节点为空或者当前节点的值不等于子树根节点的值,则直接返回当前节点的指针。如果当前节点的左子树或右子树中存在值为子树根节点的节点,则将该节点的左子树或右子树置为空,并释放该节点的空间。根据输入的节点值创建二叉树根据用户输入的节点值(-1表示空节点),使用递归的方式创建二叉树。用户输入要删除的子树的根节点的值,程序在二叉树中查找值为该值的节点,并返回该节点的指针。使用中序遍历的方式遍历二叉树,输出删除子树后的节点值序列。
2023-03-19 16:59:09
1590
2
原创 python爬虫——利用超级鹰识别验证码并进行古诗网进行模拟登录
本文章是利用python爬虫对指定登录页面进行验证码识别,并进行模拟登录的操作,主要是基于python中xpath和超级鹰验证码识别这两个模块来实现。
2022-11-17 19:54:32
1767
原创 Python中对__name__ == “ __main__ “理解
在Python中我们经常见到运行一个程序时总会有 if __name__ == "__main__"这段代码。我们知道,在Java中会有一个main方法,当我们运行程序时,只需要运行一个main方法即可,在python中也是如此,,“if __name__==’__main__:”像是一个标志,象征着Java等语言中的程序主入口,告诉程序员,代码入口在这里。下面通过代码来演示:# 模块01from demo_02 import *a = 50print("小小")print(a...
2022-02-13 17:11:47
523
2
原创 利用python实现简单的学员信息管理系统——2.0
这次的相比于上次改动不是很大,添加了登录、注册功能,还有在添加的同时直接将数据写入文件中;在对密码进行判断时,使用了正则表达式进行判断。这次所分的模块:1.main.py这次运行main方法时,首先进入登录,注册界面# 导入管理系统模块from managerSystem import *# if条件判断,保证当前程序运行才运行管理系统if __name__ == "__main__": # 创建实例对象 manager_user = StudentMan..
2022-02-13 16:29:36
1410
2
原创 利用python实现简单的学员信息管理系统——1.0
学习完Python基础,为了巩固知识就写了一个简单的学员信息管理系统下面是一些思路和方法此系统主要分为了三个模块来写模块一:student.py# 学员类class Student(): # 初始化魔法方法 def __init__(self, name, gender, tel): self.name = name self.gender = gender self.tel = tel # .
2022-02-06 21:04:05
2032
2
原创 python——字典总结
字典(dict)字典是一种新的数据结构,称为映射(mapping)字典的作用和列表类似,都是用来储存对象的容器列表储存数据的性能很好,但是查询数据的性能很差在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速查找到指定的元素在查询元素时,字典的效率非常快在字典中可以保存多个对象,每个对象都会有一个唯一的名字,这个唯一的名字,我们称为键(key),通过key可以快速的查询value,所以字典,我们也称为叫做键值对(key--value)结构每个字典中可以有多个键值对,而每一个键值对.
2022-01-23 23:05:57
1909
2
原创 泛型基本知识
定义:泛型其实质就是将数据的类型参数化,通过为类、接口及方法设置类型参数来定义泛型。 泛型类的定义是在类名后面加上<T>,泛型接口的定义是在接口名后面加上<T>,而泛型方法的定义是在方法的返回值前面加上<T>,其头部定义分别如下。泛型类的定义:[修饰符] class 类名<T> 泛型接口的定义:[public] interface 接口名<T> 泛型方法的定义:[public] [static] <T> 返回值类...
2022-01-16 19:38:03
760
3
原创 异常处理总结
1.错误与异常的区别错误:程序在执行过程中所遇到的硬件或操作系统的错误,如内存溢出、虚拟机错误等。错误对程序运行是致命性的,错误将导致程序无法运行,只能靠外界干预。 异常:在硬件和操作系统正常时,程序遇到的运行错。异常对程序运行是非致命性的,java语言的异常处理机制是程序能够捕获和处理异常。2.异常处理机制抛出异常:生成异常对象,并交给运行系统的过程。 捕获异常:在异常抛出后,运行系统从生成异常对象的代码开始,沿着方法的调用栈逐层回溯查找,直到找到包含相应异常处理的方法,并把异常对象提交给该
2022-01-16 18:41:45
832
原创 参数传递之以变量为参数调用方法
在方法的语法格式中,方法可以有返回值,也可以有参数,当方法不需要传递任何参数时,括号内什么也不用写。下面我们今天就尝试一下像方法中传递一些类型的参数,来满足我们的需求。调用方法并传递参数时,参数其实就是方法的自变量,因此参数要放在括号里来进行传递。//我们就用一个圆柱体类Cylinder介绍变量的调用方法class Cylinder{ double radius; int height; double pi;void setCylinder(double r,int h
2021-12-07 20:33:59
951
1
空空如也
python—封装装饰器问题
2022-01-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人