Python
安装使用PyCharm
在网上找破解版,把破解jar文件拖进pycharm,help出现eval reset则成功
Python基础语法
见作者《网安小白学python》的python知识专栏
Python函数
见作者《网安小白学python》的python知识专栏
Python模块
见作者《网安小白学python》的python知识专栏
Python类和对象
见作者《网安小白学python》的python知识专栏
Python魔术方法
什么是Python魔术方法
- Python中的魔术方法(Magic Methods),也被称为 双下划线方法(Dunder Methods)或特殊方法(Special Methods),是一类具有特殊命名规则的方法。它们的主要作 用是为Python中的对象提供内置的、特殊的行为。这些方法 的名称前后都带有两个下划线,如下。
__init__方法
-
触发机制:在实例化对象之后立即触发
-
举例说明
class Person:def __init__(self,name,age): #self为对象自身,name,age为属性print("初始化")self.name=name #实例化时进行赋值self.age=age #实例化时进行赋值def display(self):print("名字是",self.name,",年龄是",self.age) p1 = Person("小明","24") #创建对象 p1.display()
__new__方法
-
触发机制:实例化对象时自动触发(在__init__之前触发)。
-
在Python中,__new__方法是一个静态方法(尽管不需要显式使用@staticmethod装饰器),它负责创建并返回一个类的实例。__new__方法的第一个参数 cls 表示当前正在被实例化的类本身(类似于普通方法中的self,但self指实例,而cls指类)。
-
在自定义__new__时,通常需要通过super().new(cls)调用父类的__new__来创建实例(通常是object.new)。
-
举例说明
class Myclass:def __new__(cls,*args,**kwargs): #该方法必须带上cls(class)参数,代表参数接受当前类print("创建对象中")xyz = super().__new__(cls) #super是python的内置函数,super().__new__(cls)用于调用父类的__new__()方法来创建实例return xyz;#需要将创建的实例返回def __init__(self,name,age): #self为对象自身,name,age为属性print("初始化")self.name=name #实例化时进行赋值self.age=age #实例化时进行赋值def display(self):print("名字是",self.name,",年龄是",self.age) p1 = Myclass("小明","24") #创建对象 p1.display()
__del__方法
-
触发机制:当该类对象被销毁时,自动触发。
-
举例说明:
class Myclass:def __init__(self,data="初始值"):print("init魔术方法")self.data=datadef __del__(self): #self为对象自身,name,age为属性print("销毁对象")def display(self):print(self.data) p1 = Myclass("你好") #创建对象 p1.display() del p1;#删除对象
python具备垃圾回收的机制
__str__方法
- 触发机制:使用print(对象)或str(对象)时触发。
__getitem__方法
- 触发机制:获取对象中指定键的值时触发。
__setitem__方法
- 触发机制:设置对象中指定键的值时触发
__call__方法
- 触发机制:将对象当做函数调用时触发,即使用对象()形式。