类class,面向对象三大特征之封装、继承

类由三部分组成

1、类名:大驼峰式命名法,如:DogClass(每个单词首字母大写)
2、属性:值,如:姓名、性别、年龄等
3、方法:行为,如:各种动作
str()、int()、 float()、 bool()、 list()、 dict()等都是特殊类名,没有使用大驼峰式命名法

类的简单代码

class Cat:                          #定义类名
    def __init__(self,name,age):    #self自动添加属性
        self.name=name
        self.age=age
    def hello_kity(self):           #设置方法
        print(f'姓名:{self.name},年龄:{self.age}')
c=Cat('kity',3)                     #类调用
c.hello_kity()                      #方法函数调用

面向对象三大特征之封装

封装:保证对象中数据安全,通过封装控制数据的访问权限,确保用户设置的数据正确
封装的实现方法:
1、修改属性名
2、getter获取属性,有返回值(可以使用getter来返回一些计算属性)
3、setter设置属性,无返回值(可以对属性进行修改)

class NewClass:
    def __init__(self,name,age):
        self.hidden_name=name
        self.hidden_age=age
    def get_name(self):            #getter方法获取属性,有返回值
        return self.hidden_name             
    def set_name(self,name):       #setter方法设置修改属性,无返回值
        self.hidden_name=name
    def get_age(self):
        return self.hidden_age
    def set_age(self,age):
        if age>=0:
            self.hidden_age=age
nc=NewClass('赵丽颖',18)
print(nc.hidden_name,nc.hidden_age)         #赵丽颖 18
nc.set_age(30)
print(nc.get_age())                         #30

利用装饰器对代码进行封装 (与上一段码进行比较)

class NewClass:
    def __init__(self,name,age):
        self._name=name       #有单个_下划线开头代表有权限
        self._age=age
    @property                 #为getter方法添加property装饰器
    def name(self):
        return self._name
    @name.setter              #为setter方法添加 属性名.setter 装饰器
    def name(self,name):      
        self._name=name
    @property
    def age(self):
        return self._age
    @age.setter
    def age(self,age):
        if age>=0:
            self._age=age
nc=NewClass('杨幂',18)
print(nc.name,nc.age)
nc.age=28                      #修改年龄
print(nc.age)

面向对象三大特征之继承

class Father:               #不写括号,默认父类是object
    def __init__(self,name):
        self.name=name
    def style(self):
        print(f'{self.name}长得超级帅')
    def height(self):
        print(f'{self.name}身高一米八')
class Son(Father):          #括号内代表括号外的父类
    def eye(self):
        print(f'{self.name}双眼皮')
f=Father('大明')
s=Son('小明')
f.style()                   #大明长得超级帅
f.height()                  #大明身高一米八

s.style()                   #小明长得超级帅
s.height()                  #小明身高一米八
s.eye()                     #小明双眼皮

琐碎知识点

isinstance() 检查一个对象是否是一个类的实例(实例:照猫画虎,其中猫就是老虎的实例)
issubclass(str,object)检查前者是否是后者的子类
object是所有的类的祖先,如果定义类时候,不指定父类,则默认继承object


小白笔记,还请多多指教

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值