Python面向对象

本文探讨了编程中的两大核心思想——面向对象和面向过程,通过类与对象的概念解析,展示了如何创建类、实例化对象,并区分类属性、实例方法与静态/类方法。实例演示了动态绑定属性和方法的应用,以及类方法与静态方法的使用。
摘要由CSDN通过智能技术生成

编程思想

1.两大编程思想

  • 编程界的两大阵营

在这里插入图片描述

面向对象和面向过程,一个是宏观上的,一个是微观上。

2.类和对象的创建

  • 类是多个类似事物组成的群体的统称,能够帮我们快速理解和判断事务的性质

  • 数据类型

    • 不同的数据类型属于不同的类

    • 使用内置函数查看数据类型

      print(type(100))
      print(type(99))
      
  • 对象

    • 100、99都是int类之下包含的相似的不同个例,这个个例专业术语称为实例或对象

  • 创建类的语法

在这里插入图片描述

class Student:  #Student为类名,由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass
    
#python中一切及对象那Student是对象吗?内存开空间吗?
print(id(Student))
print(type(Student))
print(Student)

输出:

2272969161184
<class ‘type’>
<class ‘main.Student’>

  • 类的组成
    • 类属性
    • 实例方法
    • 静态方法
    • 类方法
class Student:
    native_pace='吉林'  #直接写在类里的属性,成为类属性
    def __init__(self,name,age):
        self.name=name  #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性
        self.age=age
            
            
   #实例方法 
    def eat(self):
        print('学生在吃饭···')
           
    #静态方法
    @staticmethod
    def method():
        print('我使用了stasticmethod进行修饰,所以我是静态方法')
            
    #类方法
    @classmethod
    def cm(cls):
        print('我使用了classmethod进行修饰,所以我是类方法')
 
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')
  • 对象的创建

    • 对象的创建又称为类的实例化
  • 语法

    实例名=类名()

  • 例子

    class Student:
        native_pace='吉林'  #直接写在类里的属性,成为类属性
        def __init__(self,name,age):
            self.name=name  #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性
            self.age=age
                
                
       #实例方法 
        def eat(self):
            print('学生在吃饭···')
               
        #静态方法
        @staticmethod
        def method():
            print('我使用了stasticmethod进行修饰,所以我是静态方法')
                
        #类方法
        @classmethod
        def cm(cls):
            print('我使用了classmethod进行修饰,所以我是类方法')
     
    #在类之外定义的称为函数,在类之内定义的称为方法
    def drink():
        print('喝水')
    
    #创建Student类的对象
    stu1=Studnet('张三'20)
    stu1.eat()
    print(stu1.name) 
    print(stu1.age)  
            
    Student.eat(stu1)
    
  • 意义:有了实例,就可以调用类中的内容

3.类对象与类属性

  • 类属性:类中方法外的变量称为类属性,被该类的所有对象所共享

  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法

  • 静态方法:使用@staticmethod修饰的方法,使用类名直接访问的方法

    class Student:
        native_pace='吉林'  #直接写在类里的属性,成为类属性
        def __init__(self,name,age):
            self.name=name  #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值付给实体属性
            self.age=age
                
                
       #实例方法 
        def eat(self):
            print('学生在吃饭···')
               
        #静态方法
        @staticmethod
        def method():
            print('我使用了stasticmethod进行修饰,所以我是静态方法')
                
        #类方法
        @classmethod
        def cm(cls):
            print('我使用了classmethod进行修饰,所以我是类方法')
     
    #类属性的使用方式
    #print(Student.native_pace)
    stu1=Student('张三',20)
    stu2=Student('李四',30)
    print(stu1.native_pace)
    print(stu2.native_pace)
    Student.native_pace='天津'
    print(stu1.native_pace)
    print(stu2.native_pace)
                
                
    #类方法的使用方式
    Student.cm()
                
    #调用静态方法
    Student.method()
    

    输出:

    吉林
    吉林
    天津
    天津
    我使用了classmethod进行修饰,所以我是类方法
    我使用了stasticmethod进行修饰,所以我是静态方法

4.类方法与静态方法

动态绑定属性和方法

  • Python是动态语言,在创建对象后,可以动态的绑定属性和方法

    #1.动态绑定属性
    class Student:
        def __init__(self,naame,age):
            self.name=name
            self.age=age
        def eat(self):
            print('中午吃了红烧肉')
                
    stu1=Student('小红',5)
    stu2=Student('小明',9)
    #为stu1动态绑定性别属性
    stu1.gender='女'
    print(stu1.name,stu1.age,stu1.gender)
    print(stu2.name,stu2.age)
    #输出 小红 5 女
    #     小明 9    
    
    #2.动态绑定方法
    stu1.eat()
    stu2.eat()
    #输出:小红中午吃了红烧肉
    #    小明中午吃了红烧肉
                
    def show():
       print('定义在类之外,称函数')
    stu1.show=show #这个过程就是动态绑定方法
    stu1.show()
     #输出:定义在类之外,称函数      
           
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠栀.i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值