Python——类与对象


Python——类与对象

1. 两大编程思想

1.1 编程界的两大阵营

面向过程面向对象
区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决
面向过程and面向对象
共同点面向过程和面向对象都是解决实际问题的一种思维方式
二者相辅相成,并不是对立的
解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统;具体到微观操作,仍然使用面向对象过程方式来处理

2. 类和对象的创建

2.1 定义

2.1.1 类

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

2.1.2 数据类型

(1)不同的数据类型属于不同的类

(2)使用内置函数查看数据类型

print(type(100))

2.1.3 对象

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

2.2 类的创建

2.2.1 创建类的语法

# coding=gbk
class Stduent:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass

#Python中一切皆对象,Student是对象吗?内存有开空间吗?
print(id(Stduent))  #1439610926952
print(type(Stduent))    #<class 'type'>
print(Stduent)  #<class '__main__.Stduent'>

2.2.2 类的组成

(1)类属性;(2)实例方法;(3)静态方法;(4)类方法

# coding=gbk
class Stduent:  #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('我使用了staticmethod进行修饰,所以我是静态方法')
    
    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')
    
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')

2.2.3 对象的创建

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

语法:实例名=类名()

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

类属性

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

类方法:

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

静态方法:

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

4. 动态绑定属性和方法

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

# coding=gbk
class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def eat(self):
        print(self.name+'在吃饭')

stu1=Student('张三',20)
stu2=Student('李四',30)
print(id(stu1))
print(id(stu2))
print('---------为stu2动态绑定性别属性------------------')
stu1.gender='女'
#print(stu1.name,stu1.age,stu1.gender)
print(stu1.name,stu1.age,stu1.gender)
print(stu2.name,stu2.age)
print('-----------------')
stu1.eat()
stu2.eat()

def show():
    print('定义在类之外的,称函数')
stu1.show=show
stu1.show()

#stu2.show()    因为stu2并没有绑定show方法
----')
stu1.eat()
stu2.eat()

def show():
    print('定义在类之外的,称函数')
stu1.show=show
stu1.show()

#stu2.show()    因为stu2并没有绑定show方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值