标签:blog div int 而不是 name 没有 参数 pre 自己
面向对象关键词:类,对象,实例,方法
面向对象三大特性:封装,继承,多态
class Foo: # 定义类名
def f1(self): # f1方法
print("success")
obj = Foo() # 创建对象
obj.f1() # 通过对象执行方法
类和对象的关系:

self参数是一个Python自动会传值的参数,那个对象执行方法,self就是那个
class SQLhelp():
def __init__(self, a1, a2, a3): # 此方法会自动执行,那个对象执行的方法,self就是那个
print("自动执行init")
self.host = a1
self.name = a2
self.pwd = a3
def find(self):
pass
obj1 = SQLhelp(‘c1.salt.com‘, ‘djc‘, ‘100‘) # 参数分别对应a1,a2,a3
print(obj1.host)
>>>
自动执行
c1.salt.com
对象中封装对象
class c1:
def __init__(self, name, obj):
self.name = name
self.obj = obj
class c2:
def __init__(self, name, age):
self.name = name
self.age = age
def show(self):
print("MDZZ")
class c3:
def __init__(self, a1):
self.aaa = a1
c2_obj = c2("djc", 19) # 要写在c1类之前
c1_obj = c1("sb", c2_obj)
ret = c1_obj.obj.name
print(ret)
>>>djc
c3_obj = c3(c1_obj)
ret2 = c3_obj.aaa.obj.show()
print(ret2)
>>>MDZZ

简单单继承
# 继承相当于把父类的方法复制到了子类,而不是去父类里拿
class f1: # 父类,基类 def show(self): print("f1") def foo(self): print(self.name) class f2(f1): # 子类,派生类 def __init__(self, name) self.name = name obj = f2("djc") obj.foo() >>>djc
复杂单继承
class f1:
def F1(self):
self.F2() # 执行f2的F2
def F2(self):
print("f1,F2")
class f2(f1):
def F3(self):
self.F1() # 执行f1的F1
def F2(self):
print("f2,F2")
obj = f2()
obj.F3() # 自己的方法优先,作为子类不要忽略继承的父类的方法,如果自己没有,才去父类里面找
>>>
f2,F2

简单多继承
class c1:
def f2(self):
print("c1")
class c2:
def f2(self):
print("c2")
class c3(c2,c1): # 左边的优先
def f3(self):
pass
obj = c3()
obj.f2()
>>>c2
稍复杂多继承
class c0:
def f2(self):
print("c0")
class c1:
def f2(self):
print("c1")
class c2(c0):
def f1(self):
print("c2")
class c3(c2,c1):
def f3(self):
pass
obj = c3()
obj.f2()
>>>c0

复杂多继承
class c_2:
def f2(self):
print("c_2")
class c_1(c_2):
def f2(self):
print("c_1")
class c0(c_2):
def f1(self):
print("c0")
class c1(c_1):
def f1(self):
print("c1")
class c2(c0):
def f1(self):
print("c2")
class c3(c2,c1):
def f3(self):
pass
obj = c3()
obj.f2()
>>>c-1

class h5:
def forever(self):
self.run()
class h4(h5):
def __init__(self):
pass
def run(self):
self.process()
def process(self):
print("h4")
class h3(h4):
def __init__(self):
pass
class h2:
def process(self):
print("h2")
class A(h2, h3):
pass
obj = A()
obj.forever()
>>>h2

标签:blog div int 而不是 name 没有 参数 pre 自己
原文地址:http://www.cnblogs.com/learnC/p/6059848.html