1.init:
作用:为类传递参数
class Person:
def __init__(self, name, old):
self.name = name
self.old = old
def info(self):
print(我叫%s,今年%s%(self.name, self.old))
xm = Person(小明,15)
xm.info()
>>>我叫小明,今年15
上面的Person类中有两个参数,name,old就是通过__init__传统
2.super:
class Person(object):
def __init__(self):
print(我想做个好人)
def hh(self):
print(自行脑补...)
class Police(Person):
def __init__(self):
super(Police, self).__init__()
print(看法官给不给你机会)
police = Police()
police.hh()
>>>我想做个好人
看法官给不给你机会
自行脑补...
作用:调用父类,自动找到父类的方法。相当于调用了父类被重写的方法。第二种方法:Person.init(self).
3.关于属性的设置
class Person():
pass
a = Person()
a.age = 15
但是如果设置0,显然不符合常理。
因此属性设置和获取最好使用方法,可以方便判断值的合法性。
4.__del__方法:
class A:
def __init__(self):
print(调用了__init__方法)
def __del__(self):
print(调用了__del__方法)
a = A()
调用了__init__方法
b = a
c = b
del a
del b
del c
调用了__del__方法
上面代码,实例化a后,创建了一个对象,b = a,是b也指向了这个对象,同理c也是,这样有3个实例指向了同一个对象。这3个实例叫引用计数,当使用del时,仅删除了a,引用计数变为2,只有当计数变为0时,才会自动调用__del__方法。
另外,当程序结束时,也会调用__del__方法。
5.__str__方法:
class A:
def __init__(self,name):
self.name = name
def __str__(self):
return 我叫%s%(self.name)
>>>a = A(小明)
a
>>>__main__.A object at 0x000002552A4C7DA0
>>>print(a)
>>>我叫小明
当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
评论列表
已有0条评论