栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python基础28 面向过程和面向对象、类和对象、类的属性、实例方法、静态方法、类方法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python基础28 面向过程和面向对象、类和对象、类的属性、实例方法、静态方法、类方法

文章目录
      • 一、 面向对象和面向过程
      • 二、类的定义
      • 三、对象的创建
      • 四、类属性的使用方式
      • 五、类方法的使用方式
      • 六、静态方法的使用方式
      • 七、实例方法、类方法、静态方法的区别
      • 八、动态绑定属性和方法

一、 面向对象和面向过程
"""
编程的两大思想
面向过程:
    事物比较简单,可以用线性思维去解决
面向对象:
    事物比较复杂,使用简单的线性思维无法解决
两者的共同点:面向对象和面向过程都是解决实际问题的一种思维方式
二者相辅相成,并不是对立的
解决复杂问题,通过面向对象的方式便于我们在宏观上把握事物之间复杂的关系,方便我们分析整个系统
具体到细微操作,仍然使用面向过程的方式来处理
"""
二、类的定义
# 类的定义 class 类名: 在Python中一切皆是对象 所以类也是对象
"""
类的组成
1、类属性:类中方法外的变量称为类属性,被该类的所有对象共享
2、实例方法
3、静态方法:使用@staticmethod修饰的方法,使用
4、类方法:使用@classmethod修饰的方法,使用类名直接访问
"""
class Student:  # Student为类的名称 规范:类名由一个和多个单词组成,每个单词首字母大写
    native_place='吉林'   # 直接写在类里面的变量,称为类属性

    # 初始化方法
    """
    self.name称为实体属性,进行一个赋值的操作,将局部变量的name值赋给实体属性
    """
    def __init__(self,name,age):
        self.name=name
        self.age=age

    # 实例方法 类之外定义的是函数 类之内定义的叫方法
    def info(self):
        print('我的名字叫:',self.name,'年龄是',self.age)

    # 类方法
    @classmethod    #用classmethod进行修饰 所以是类方法 要求传一个cls的参数
    def cm(cls):
        print('类方法')

    # 静态方法
    @staticmethod   #用staticmethod进行修饰 所以是静态方法 静态方法中不允许写self
    def sm():
        print('静态方法')
三、对象的创建
#对象的创建 又称类的实例化 有了实例就可以调用类中的内容
stu=Student('Jack',18)
print(id(stu))
print(type(stu))
print(stu)
print(stu.name,stu.age)
#两种方式 功能相同 都是调用Student中的info方法
stu.info()  #对象名.方法
Student.info(stu)   #类名.方法名(类的对象)->实际上就是方法定义中的self
四、类属性的使用方式
print(Student.native_place)
Student.native_place='南京'
stu1=Student('Seri',22)
print(stu1.native_place)
五、类方法的使用方式
# 类方法的使用方式
Student.cm()
六、静态方法的使用方式
# 静态方法的使用方式
Student.sm()
七、实例方法、类方法、静态方法的区别
"""
实例方法、类方法、静态方法的区别
1、关于参数的区别
实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self
类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls
静态方法:定义静态方法的时候可以不定义形参

2、关于方法定义时候添加装饰器的区别
实例方法:不需要添加装饰器
类方法:需要添加装饰器 ----> @classmethod
静态方法:需要添加装饰器 ---> @staticmethod

3、调用:
实例方法可以通过对象直接调用但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去
类方法可以通过类名直接调用,也可以通过对象来调用
静态方法可以通过类名直接调用,也可以通过对象来调用

4、补充
静态方法不可以继承  
类方法不能访问实例变量,只能访问类变量
"""
八、动态绑定属性和方法
"""
动态绑定属性和方法
"""
class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')
stu1=Student('张三',20)
stu2=Student('李四',18)
stu1.gender='男' # 动态绑定属性 原来没有的属性直接添加到对应的实例对象中
print(stu1.gender)

# 动态绑定方法
def show():
    print('定义在类之外的,称函数')
stu1.show=show
stu1.show()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/958862.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号