构造 析构 重写函数

构造函数

'''
掌握
构造函数:__init__()
作用:1.创建变量用的
     2.初始化赋值用的(传参)
是内置函数,会自动执行的
执行时机:在创建对象的时候执行的。不需要手动调用
构造函数是最先执行的。

给一个变量赋值的方式:1.在外部拿对象名点的方式赋值
                  2.构造函数传参赋值
注意:在类中写的函数和变量必须拿对象名字调用
'''
class Person:

    def __init__(self,n):
        self.name=n
        self.age=0
        print("姓名:%s,年龄%d" % (self.name, self.age))
    def show(self):
        print("show")
        print("姓名:%s,年龄%d" % (self.name, self.age))


# 在写Person()的时候是会自动的调用__init__()
p1=Person("张三")
p1.age=10
p1.show()



class person:
    def __init__(self,n,m):
        self.name = n
        self.age = m
        print("姓名%s 年龄%d" % (self.name, self.age))
p2 = person("张三", 18)

析构函数

'''
了解
析构函数:
    __del__()
    在对象死亡的时候执行
对象的死亡时机:1.在程序结束自动销毁
              2.手动销毁对象 del
              3.作为局部变量

注意:变量销毁无法再次使用
'''

class Person:

    def __init__(self):
        print("我出生了")

    def __del__(self):
        print("我走了")

# p1 = Person()
# del p1
# 报错
# print(p1)
# def fun():
#     p1=Person()
# print("函数开始前")
# fun()
# print("函数结束了")

重写函数

'''
了解
重写:自己写的函数和底层的函数名字冲突了,自己的把底层给覆盖掉了
__str__():内置函数,自动执行的
打印对象名的时候自动执行
str:return要求是字符串
'''
class Person:
    def __init__(self):
        self.name=None
        self.age=None

    def __str__(self):
        return "姓名:%s,年龄:%d"%(self.name,self.age)



p1=Person()

p1.name="a"
p1.age=9
print(p1)

p2=Person()
p2.name="b"
p2.age=20
print(p2)

猜你喜欢

转载自blog.csdn.net/qq_42806416/article/details/81488376