笔记-python面向对象(1)

Python 2018-07-26 919

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的数据

标签:Python

文章评论

评论列表

已有0条评论