Python的学习(十三):类与对象

Python的学习(十三):类与对象

  • 面向过程

    事物比较简单,可以用线性的思维去解决

  • 面向对象

    事物比较复杂,使用简单的线性思维无法解决

共同点:都是解决实际问题的一种思维方式

两者相辅相成,并不是对立的

解决复杂问题,通过面向对象方式便于我们从宏观把握事物之间复杂的关系,方便我们分析整个系统,具体到围观操作,仍然用面向过程方式来处理。

类与对象

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

类的创建

  • class Student:#Student是类名,由一个或多个单词组成,每个单词首字母大写,其余小写

    ​ pass

    class Student:
        native_place = '广东'
        #初始化方法
        def __ init __(self,name,age):
            self.name = name
            self.name = age
        
        #实例方法
        #在类之外定义的称为函数,在类之内定义的称为方法
        def eat(self)print('学生在吃饭!')
           
        #静态方法
        @staticmethod
        def sm():
            print('这是静态方法!')
            
        #类方法
        @classmethod
        def cm(cls):
            print('这是类方法!')
    

对象的创建

  • 对象的创建就是类的实例化

  • 语法:实例名 = 类名( )

    #创建Student类的实例对象
    stu = Student('Jack',20)
    print(stu.name)#实例属性
    print(stu.age)#实例属性
    stu.info()#实例方法
    
    stu.eat()#对象名.方法名
    Student.eat(stu1)#类名.方法名(类的对象)——实际上就是方法定义处的self
    #这两行代码一样,只是后者需要传入一个student对象
    

image-20220206152208418

实例对象中会有一个指针指向类对象!

类属性、类方法、静态方法

类属性

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

  • 使用方式

    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)#天津
    

类方法

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

使用方式:

Student.cm()

静态方法

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

使用方式:

Student.method()

动态绑定属性和方法

python是一门动态语言,在创建对象后,可以动态地绑定属性和方法

  • 动态绑定属性
#创建一个类
class Student:
    def __inint__(self,age,name):
        self.name = name
        self.age = age
    
    def eat(self):
        print(self.name + '在吃饭')
        
        
#创建对象
stu1 = Student('张三'20)
stu2 = Student('李四'30)

print('-------为stu2绑定性别属性-----------')
stu2.gender = '女'
print(stu2.name,stu2.age,stu2.gender)
    
print('-------为stu1绑定方法-----------')
def show():
    print('我是帅哥!')
    
stu1.show = show#动态绑定方法
stu.show()

总结

image-20220206162646785

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值