【小甲鱼】零基础入门学习Python(五)类、对象

  • 对象 = 属性 + 方法
  • 封装:信息隐蔽技术
  • 继承:子类自动共享父类之间数据和方法的机制
  • 多态:不同对象对同一方法响应不同的行动

 

  • self
  • 类的方法第一个参数为self

 

  • 实例化的时候可以传递参数
  • 通过重写__init__()添加参数
  • __init__(self, param1, param2)

 

  • 定义私有变量在变量名或函数名前加上__两个下划线,外部无法访问
  • 名称改编为_类名__变量名
class Person:
    __name = "A"
    Def getName(self):
        return self.__name

p = Person()
p.__name 无法调用
p.getName()
p._Person__name

 

  • 继承
  • class DerivedClassName(BaseClassName):
  • 子类
  • 基类、父类、超类
  • 如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性
  • 调用未绑定的父类方法
  • Fish.__init__(self)
  • 使用super函数
  • super().__init__()
  • 多重继承

 

  • 组合
class Turtle:
    def __init__(self, x):
        self.num = x

class Fish:
    def __init__(self, y)

class Pool:
    def __init__(self, x, y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)

    def print_num(self):
        print("水池里有乌龟 %d 只,鱼 %d 条。" % (self.turtle.num, self.fish.num)

 

  • 属性名与方法名相同,属性会覆盖方法,重新初始化
  • 不要试图在一个类里定义出所有能想到的特性和方法,应该利用继承和组合机制来扩展
  • 用不同的词性命名,如属性名用名词,方法名用动词
  • 绑定,严格要求方法需要有实例才能被调用

 

  • issubclass(class, classinfo) class为classinfo的子类,返回true
  • 一个类被认为是其自身的子类
  • classinfo可以是类对象组成的元组,只要其中任一个满足则true
  • object是所有类的一个基类

 

  • isinstance(object, classinfo)检测实例对象是否属于类
  • 如果第一个参数不是对象,则永远返回false
  • 如果第二个参数不是类或类对象组成的元组,则TypeError异常

 

  • hasattr(object, name)一个对象里是否有指定的属性,字符串表示属性
  • getattr(object, name[, default])返回属性值,不存在返回默认值
  • setattr(object, name, value)赋予属性值,不存在即新建
  • delattr(object, name)删除属性
  • property(fget=None, fset=None, fdel=None, doc=None)
class C:
    def __init__(self, size = 10):
        self.size = size
    def getSize(self):
        return self.size
    def setSize(self, value):
        self.size = value
    def delSize(self):
        del self.size
    x = property(getSize, setSize, delSize)

c = C()
c.x
c.x = 18
del c.x

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值