北京市违法建设投诉网站,产品展示型网站模板,最新国际新闻热点事件,WordPress万级数据优化一、构造方法__init__(self)
__init__()方法是一种特殊的方法#xff0c;被称为类的构造函数或初始化方法#xff0c;当创建了这个类的实例时就会调用该方法。一般用来对实例的属性进行初使化#xff0c;如果不提供#xff0c;Python 会给出默认的__init__方法。
class t…一、构造方法__init__(self)
__init__()方法是一种特殊的方法被称为类的构造函数或初始化方法当创建了这个类的实例时就会调用该方法。一般用来对实例的属性进行初使化如果不提供Python 会给出默认的__init__方法。
class testClass: def __init__(self, name, gender): //定义 __init__方法这里有三个参数这个self指的是一会创建类的实例的时候这个被创建的实例本身例中的testman你也可以写成其他的东西比如写成me也是可以的这样的话下面的self.Name就要写成me.Name。 self.Namename //通常会写成self.namename这里为了区分前后两个是不同的东东把前面那个大写了等号左边的那个Name或name是实例的属性后面那个是方法__init__的参数两个是不同的 self.Gendergender //通常会写成self.gendergender print(hello) //这个print(hello)是为了说明在创建类的实例的时候__init__方法就立马被调用了。
testman testClass(neo,male) //这里创建了类testClass的一个实例 testman, 类中有__init__这个方法在创建类的实例的时候就必须要有和方法__init__匹配的参数了由于self指的就是创建的实例本身self是不用传入的所以这里传入两个参数。这条语句一出来实例testman的两个属性NameGender就被赋值初使化了其中Name是 neoGender 是male。
class testClass (object):def __init__(self, name, gender):#构造函数或类的初始化创建实例时会被调用self.Name nameself.Gender genderprint (hello)testman testClass (neo, male)
print (testman.Name)
print (testman.Gender)class tetsClass2 (object):def __init__(me, name, gender):#构造函数或类的初始化创建实例时会被调用me.gender genderprint (hello2)
testman2 tetsClass2 (neo, male)
print (testman2.name)
print (testman2.gender)C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
hello
neo
male
hello2
neo
maleProcess finished with exit code 0
二、析构函数__del__
__del__ ()被称为类的析构函数__del__()在对象消逝的时候被调用当对象不再被使用时__del__()方法运行。
当使用del 删除对象时会调用他本身的析构函数另外当对象在某个作用域中调用完毕在跳出其作用域的同时析构函数也会被调用一次这样可以用来释放内存空间。 __del__()也是可选的如果不提供则Python 会在后台提供默认析构函数
如果要显式的调用析构函数可以使用del关键字 del obj class Test(object):name小雷address上海市def __init__(self,name,age):self.namenameself.ageageprint(这里是构造方法)def test1(self):print(self.name,self.age)def __del__(self):print(这里是析构函数清理了)def test2(self):print(self.name, Test.address)def test3(self):print(准备被清理的)
Test1Test(小张,22)
Test1.test1()
Test1.test2()
Test1.test3()
Test2Test(王大大,33)
Test2.test1()
Test2.test2()
del Test2.test3
Test2.test3()#试验证明
#1、析构函数__del__等所有程序执行完才会执行
#2、被del的方法无法再被调用
#3、析构函数会自动被调用
#4、del 方法会调用析构函数C:\Program Files\Python35\python.exe C:/Users/wangli/PycharmProjects/Test/Test/test.py
Traceback (most recent call last):File C:/Users/wangli/PycharmProjects/Test/Test/test.py, line 89, in moduledel Test2.test3
AttributeError: test3
这里是构造方法
小张 22
小张 上海市
准备被清理的
这里是构造方法
王大大 33
王大大 上海市
这里是析构函数清理了
这里是析构函数清理了