python学习之类与对象

10.类与对象

10.1 两大编程思想

在这里插入图片描述

10.2 类和对象的定义

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

  • 数据类型:不同的数据类型属于不同的类;使用内置函数查看数据类型

# int是一个类,100是int的一个实例,也叫对象
print(type(100))  #<class 'int'>
  • 对象:是类的实例化,如100,99等是int类的实例或对象(python中一切皆对象)

10.3 类和对象的创建

  • 类的创建语法
class Student# 类名默认每个单词的首字母大写其余小写,不强制要求
       pass

类的组成:类属性、实例方法、静态方法、类方法

class Student:
    native_place = '吉林' #直接写在类中的变量,叫类属性
    #初始化方法
    def __int__(self,name,age):
        self.name=name # self.name称为实体属性,此处将局部变量的name值赋值给实体属性
        self.age=age
    #实例方法 参数为self
    def eat(self):
        print('实例方法')
    #静态方法 没有参数
    @staticmethod
    def method(): #静态方法不能用self参数
        print('静态方法')
    #类方法 参数为cls
    @classmethod
    def cm(cls):
        print('类方法')
#在类内定义的成为方法,在类外定义的成为函数
def drive():
    print('我是函数')
  • 对象的创建:对象的创建又称为类的实例化,有了实例,就可以调用类中的内容
  • 对象的创建语法:实例名=类名()
#接类的创建代码
#创建Student类的对象
stu1 = Student('张三',23)
print(id(stu1)) #2332420612304
print(type(stu1)) #<class '__main__.Student'>
stu1.eat() #我是一个正在吃饭的实例方法
print(stu1.name) #张三
#类名.方法名(类的对象) 类的对象就是方法处定义的self
Student.eat(stu1) #我是一个正在吃饭的实例方法

10.4 类对象与类属性、类方法与静态方法

  • 类属性:类中方法外的变量称为类属性,被该类的所有对象所共享
  • 类方法:使用@classmethod修饰的方法,使用类名直接访问的方法
  • 静态方法:使用@staticmethod修饰的主法,使用类名直接访问的方法
print(Student.native_place)#访问类属性
student.cm() #调用类方法 ?cls呢
Student.sm() #调用静态方法
  • 案例
#创建Student类的对象
stu1 = Student('张三',23)
stu2 = Student('李四',24)
print(stu1.native_place) #吉林
print(stu2.native_place) #吉林
#调用类属性
Student.native_place = '天津'
print(stu1.native_place) #天津
print(stu2.native_place) #天津
  • python是动态语言,在创建对象后,可以动态地绑定属性和方法
#动态绑定属性
print(id(stu1)) #1295753441040
#只适用于当前绑定的方法
stu1.gender = '女'
print(stu1.name,stu1.gender) #张三 女
print(id(stu1)) #1295753441040
##动态绑定方法
stu1.drive= drive
stu1.drive() #我是一个在开车的函数 只能绑定无参的吗
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值