从零开始——Python学习笔记(2019.1.22)

面向对象的编程
1.编程语言的发展:机器语言(二进制码),汇编语言,高级语言(c语言),面向对象的编程语言(C++、,Java、,Python)
2.类:对具有相同属性和方法的抽象
3.对象:具有属性(静态)和方法(动态)的实物
4.方法(3种):类方法(2种),对象方法
#类
class person():
def init(self,name,age,sex,height): #创建属性 init 构造函数
self.name = name #self:即将要出现的对象,临时指向新创建的对象
self.age = age
self.sex = sex
self.height = height
def say(self): #创建方法
print(,self.name,self.age,self.sex,self.height,“hello”)
@staticmethod #转变为静态方法,不依赖对象
def hello():
print(“hello”,self.name)

5.面向对象的三大特性:继承 封装 多态
继承:
class 子类/派生类(父类/超类/基类):

class A(object):
def a():
pass
class B(A):
def b():
pass
class C(B):
def c():
pass

class D(A,B,C)
从左到右,整体深度优先 局部广度优先(有菱形结构)

class D(A,B,C)
def b():

#覆盖/重写:当父类不能满足子类需求时,需要对其进行覆盖

class A():
def a(self,name):
print(name)

class B(A):
def a(self):
print(“子类a方法”)

b = B()
b.a() #self

6.类与类之间的关系:
继承 关联(组合、聚合) 依赖
耦合程度:继承>关联>依赖
多态:多重形态(继承中的重写覆盖)
封装

7.关联关系(组合、聚合):一个类的对象作为另一个类的属性
class student():
def init(self,name):
self.name = name
def study(self):
print(" I love Python.")
class teacher():
def init(self,stu):
self.stu = stu
def teach(self):
print(“teach %s python”%self.stu.name)

s = student(“张三”)
t = teacher(s)
t.teach()

8.依赖关系:一个类的对象作为另一个对象的方法或参数
class student():
def init(self,name):
self.name = name
def study(self):
print(" I love Python.")
class teacher():
def teach(self,stu):
print(“teach %s python”%stu.name)

s = student(“张三”)
t = teacher()
t.teach(s)

class A():
name = “张三” #类属性
def init(self,age):
self.age = age
@staticmethod
def a():
print(“类方法-静态方法”)
def aa(self):
print(“对象方法”)

print(A.name)
A.a()
a = A(18)
print(a.age)
a.aa()

class A():
__name = “张三” #类属性 _A__name

def __init__(self,age): #self._A__age
    self.__age = age #对象属性
@staticmethod
def __a(): #_A__a()
    print("类方法-静态方法")

def __aa(self):                             #self._A__aa()
     print("对象方法")

def get_age(self):
    return self.__name
def set_age(self,age):
    if age >150 or age < 0:
        print("非法年龄")
    self.__age = age
@staticmethod
def get_name(self):
    return A.__name
@staticmethod
def set_name(name):
    if isinstance(name,str):
        A.__name = name
    else:
        raise TypeError("类型错误,非str不能赋值")

#单下划线:本类和子类都可使用
#双下划线:只能本类中使用
class A():#object
def a(self):
print(“我是a”)

def _b(self):
    print("我是_b")

def __c(self):
    print("我是__c")

class B(A):
pass
#isinstance 判断是否是实例
a= A()
print(isinstance(a,object))
#issubclass 判断B是否是A的子类
print(issubclass(B,A))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值