python_面向对象(初始)

1.面向对象不是所有情况都适用

2.面向对象编程

a定义类

class  Foo:

def 方法(self,bb):

pss

b根据类创建对象(创建一个类的实例)

适用对象执行对象中的方法

obj = Foo() obj创建了一个对象

3.self,形式参数,python内部传递

 obj = Foo()

obj.fetch('bb') ==》 self:obj   , backed:“bb”

class Foo:
    def fetch(self,bb):
        print(self,bb)


obj = Foo()
print(obj)
obj.fetch("aa")
>>>
<__main__.Foo object at 0x000000EF50DAB978>
<__main__.Foo object at 0x000000EF50DAB978> aa

通过内存地址我们可以看出来,类中函数里self 的内存地址 等价于对象obj的内存地址,实际指向是这个对象


4、self成员变量

class fu():
    def a(self):
        print(self.test)
    def b(self):
        print(self.test)



c = fu()
c.test = 1
c.a()
c.b()
》》》
1
1

通过上面的例子可以看出,python 定义成员变量的时候可以在外面定义,是因为self 所指的是对象,正式因为如此可以通过对象定义成员变量~~java中没见过得我一脸懵逼


五、类加括号

自动执行类中的init方法,在init的方法中具体封住的操作,init 叫做构造方法

__del__ 解释器销毁对象的时候自动调用:析构方法

++++++++++++封装+++++++++++++++

1.当同一类型的方法具有相同参数时,直接对封装到的对象即可

2.把类当做模板,创建多个对象(对象内封装的数据可以)

++++++++++++继承+++++++++++++++

1.派生类可以继承基类中所有的功能

class Animal():
    def chi(self):
        print("chi")

class cat(Animal):
    def jiao(self):
        print("jiao")


obj = cat()
obj.chi()
obj.jiao()
》》》
chi
jiao

2.派生类可以重写基类,也就是派生类和基类同时存在,优先派生类

class Animal():
    def chi(self):
        print("chi")

class cat(Animal):
    def jiao(self):
        print("jiao")
    def chi(self):
        print("buchi")



obj = cat()
obj.chi()
obj.jiao()
>>>
buchi
jiao

3.继承从左到右,同一基类从左右到头 

class an():
    def piao(self):
        print("p")


class bn():
    def piao(self):
        print("a")

class cn(bn,an):
    def z(self):
        print("1")

c= cn()
c.piao()
>>>
a








猜你喜欢

转载自blog.csdn.net/Py_CCY/article/details/76251911