【python入门】day13:面向对象之创建对象、动态绑定方法和属性

什么是面向对象

面向过程:简单的,可用线性思维去解决
面向对象:复杂的,用简单线性思维无法解决
类:相似群体的统称,便于快速理解和分辨事物。在python中就是数据类型,int float str tuple dict list等
对象:具体的个例就是对象,在python中一切皆对象。

定义类

类的名称由一个或者多个单词组成,每个首字母大写,其余小写
直接写在类里边的变量成为类属性
在类里定义的方法叫实例方法:

def info(self):
	print('')

类方法:

@classmethod
def cm(cls):
	print('')

静态方法:

@staticmethod
def sm():
	print('')

在类外定义的称为为函数
在这里插入图片描述

创建对象

对象名=类名(实例属性1,属性2)
对象名.方法名()与类名.方法名(类的对象名)作用相同。
在这里插入图片描述
在这里插入图片描述

类属性、类方法、静态方法的使用

类属性:类中方法外的变量称为类属性,被该类的所有对象共享
#print(类名.类属性)或者print(对象名.类属性)
类方法:使用类名直接访问的方法#类名.类方法
静态方法:使用类名直接访问的方法#类名.类方法

定义学生的类

class Student:  # 要求首字母大写
    native_pace = '吉林'  # 写在类里的变量,称为类属性
    def __init__(self, name, age):
        self.name = name  # 实例属性,将局部变量name赋值给实体属性
        self.age = age

    # 实例方法
    def eat(self):
        print('学生在吃饭...')

    # 静态方法
    @staticmethod
    def methmod():
        print('我使用了staticmethmod修饰,是静态方法')

   #类方法
    @classmethod
    def cm(cls):
       print('使用了classmethod修饰,是类方法')
print('------------------')
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)
print('--类方法的使用方式--------')
Student.cm()
print('--静态方法的使用方式--------')
Student.methmod()

在这里插入图片描述
在这里插入图片描述

动态绑定属性和方法

对象名.属性名=值 #为某对象动态绑定属性
def 方法名():
对象名.方法名=方法名#动态绑定方法

'''
python 是动态语言,在创建对象之后,可以动态地绑定实现和方法,
一个student类可以创建N多个实例对象,每个实例对象的属性值可以形态也可以不同
'''
class Student:
    #类对象
    def __init__(self,name,age):
        self.name=name
        self.age=age
    #实例方法
    def eat(self):
        print(self.name+'在吃饭')
#类的实例对象
stu1=Student('zhangsan',18)
stu2=Student('lili',20)
print(id(stu1))
print(id(stu2))
print('-----为stu2绑定性别动态属性-------')
stu2.gender='女'
print(stu1.name,stu1.age,stu2.name,stu2.age,stu2.gender)
print('-----为stu1绑定show动态方法-------')
def show():      
    print('定义在类之外的,称为函数')
stu1.show=show #当绑定在对象上之后就称为方法
stu1.show()

stu2.show()会报错,应为stu2没有绑定show方法
在这里插入图片描述

总结

‘’’
编程思想:面向过程 面向对象
类对象class:类属性、类方法、静态方法是使用类名取吊用的,实例方法是使用对象打点调用的
类属性:定义类里的变量
类方法 :使用@classmethod修饰的,小括号默认代cls参数
实例方法:def ***(默认代self–>也可以自己去列的名字)
静态方法:使用@staticmethod进行修饰,没有默认参数
实例对象:类名()括号里可以传参数 创建实例对象C
动态绑定属性 动态绑定方法(只对当前对象起作用)
‘’’

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值