【Python】面向对象编程

class Person():
    
    def __init__(self):
        pass

    def set_name(self, name):
        self.name = name

    def get_name(self):
        return self.name
    
    def greet(self):
        print("Hello, world! I'm {}.".format(self.name))

面对对象三要素

  1. 封装:

通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。

  1. 继承:

继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

  1. 多态:

多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。

抽象类

必须导入abc 模块才能定义抽象类

import abc

class shuiguo(metaclass=abc.ABCMeta):
    
    all_type='sg'

    @abc.abstractmethod #定义抽象方法,无需实现功能
    def name(self):
        pass

    @abc.abstractmethod #定义抽象方法,无需实现功能
    def func(self):
        pass


class Apple(shuiguo): #子类继承抽象类,可是必须定义read和write方法
    def name(self):
        print('我是苹果')

    def func(self):
        print('好吃')

class Pear(shuiguo): #子类继承抽象类,可是必须定义read和write方法
    def name(self):
        print('我是梨子')

    def func(self):
        print('yunfeizhike')

抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且子类必须实现抽象方法

内置方法检查或是访问对象属性

用法含义
dir([obj])返回包含obj大多数属性名的列表(会有一些特殊的属性不包含在内)
hasattr(obj, attr)检查obj是否有一个名为attr的值的属性,返回一个布尔值。
getattr(obj, attr)调用这个方法将返回obj中名为attr值的属性的值
setattr(obj, attr, val)调用这个方法将给obj的名为attr的值的属性赋值为val
type(obj)判断对象类型,使用type()函数
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值