Python_面向对象

1 类的定义

类的理解:它是现实世界或思维世界中的实体在计算机中的反映,它将数据(类的数据成员)以及这些数据上的操作(方法,其他语言称为函数)封装在一起。
类就像一个模板,通过这个模板可以产生很多个对象
类的最基本的作用就是封装代码

class Student():  # 类的定义
    name = "Lilly"
    age = 18

    def print_file(self):
        print('name: '+self.name)
        print('age: '+str(self.age))


student1 = Student()  # 实例化
student1.print_file()  # 调用类里面的方法

2 构造函数

class Student():  # 类的定义
    name = ""
    age = 0    # 此处name和age是类变量

    def __init__(self,name,age): # 构造函数
        print('*******')
        self.name = name
        self.age = age    # 此处的self.name和self.age是实例变量,只和对象相关

    def print_file(self):
        print('name: '+self.name)
        print('age: '+str(self.age))



student1 = Student('Tom',19)  # 实例化
student2 = Student('Sam',18)
student1.print_file()  # 调用类里面的方法
student2.print_file()

类变量和实例变量

类变量就是和类相关联的变量;
实例变量是和对象相关联的变量,在构造函数里通过self.变量名来保存实例变量

类与对象的变量查找顺序

访问一个实例变量,如果对象实例列表没有,会继续在类变量里去寻找。

3 self与实例方法

self代表的是对象实例;对于类下面的实例方法,在定义的时候self必须出现。但在调用实例方法的时候是不需要传入self的。

在实例方法中访问实例变量与类变量

这里写图片描述
方法需要对变量做一系列运算,然后去改变类的特征。
1. 实例方法与构造函数的调用方法不一样,构造函数的调用,是通过类名(变量)来调用,比如:student1=Student(‘qxn’,24)来调用,而实例方法是通过对象来调用的,比如:student.do_homework()来进行的。
2. 实例方法与构造函数的意义不同,实例方法主要是来描述类的行为,而构造函数主要是来初始化类的各种特征。
在实例方法中访问类变量:
1. 通过类名.变量名来进行访问
2. 通过self.class.name来进行访问

4 类方法

@classmethod        # 在方法上面加@classmethod装饰器表示类方法
    def plus_sum(cls):
        cls.sum += 1
        print(cls.sum)

调用类方法:
直接用类来调用:
Student.plus_sum()

5 静态方法

  1. 静态方法装饰器@staticmethod
  2. 无需传入cls,self等参数,可以被类和方法调用
  3. 静态方法和类方法不能访问实例变量
  4. 静态方法可以被类方法代替,它与面向对象的关系很弱,和普通函数区别不大。不建议使用

6 成员可见性:公开和私有

变成私有的方法:变量或者方法前加双下划线
python可以通过在实例对象后加.__value的形式创建成员变量。————python的动态属性

7 子类方法调用父类方法:super关键字

调用形式:super(子类名,self).父类方法

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值