我在CSDN学python-12

1、两大编程思想

编程界的两大阵营
面向过程面向对象
区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决
共同点面向过程和面向对象都是解决实际问题的一种思维方式

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

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

2、类和对象的创建

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

数据类型:不同的数据类型属于不同的类,使用内置函数type()查看数据类型。

对象:同类下相似的不同个体,称为实例或对象。【Python中一切皆对象】

类的创建:

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/12  12:40

class Student:  # Student为类的名称(类名),由一个或多个单词组成,每个单词的首字母大写,其余小写
    pass
# python中一切皆对象
print(id(Student))  # 1242243713152
print(type(Student))  # <class 'type'>
print(Student)  # <class '__main__.Student'>

类对象class的组成:

类属性
实例方法
静态方法
类方法
# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/12  14:42

class Student:
    native_pace = '湖南'  # 直接写在类里的变量,称为类属性
    def __init__(self, name, age):
        self.name = name  # self.name称为实体属性,进行了一个赋值操作,将局部变量name的值赋给实体属性
        self.age = age

# 实例方法
    def eat(self):   #  self关键字
        print('学生在吃午餐!')

    # 静态方法
    @staticmethod
    def method():
        print('使用staticmethod进行修饰,是静态方法')

    # 类方法
    @classmethod
    def cm(cls):
        print('类方法,使用了classmethod进行修饰')

# 在类之外定义的称为函数,在类之内定义的称为实例方法
def drink():
    print('学生在喝水!')

对象的创建:又称类的实例化。

        有了实例,就可以调用类中的内容。

语法:   实例名 = 类名()

# 创建Student类的实例对象stul
stul = Student('张三', 20)
print(id(stul))
print(type(stul))
print(stul)  # 输出Student对象的内存地址(十六进制)
print('------')
print(id(Student))
print(type(Student))
print(Student)

stul.eat()  # 对象名.方法名()  # 实例方法
print(stul.name)  # 实例属性
print(stul.age)

print('------')
Student.eat(stul)  # 与stul.eat()功能相同,都是调用Student中的eat方法
# 类名.方法名(类对象)————>实际上就是方法定义处的self

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

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

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

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

# 类属性的使用方式
print(Student.native_pace)
stul1 = Student('张三', 20)
stul2 = Student('李四', 30)
print(stul1.native_pace)
print(stul2.native_pace)
Student.native_pace = '湖北'
print(stul1.native_pace)
print(stul2.native_pace)
print('------类方法的使用方式------')
Student.cm()
print('------静态方法的使用方式------')
Student.method()

4、动态绑定属性和方法

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

# Name:      Python study
# Designer:  MilesHugh
# Time:      2023/4/12  14:54

class Student:
    def __init__(self, name, age):  # 定义初始化方法
        self.name = name  # 所有实例对象所共有的属性
        self.age = age
    def eat(self):
        print(self.name + '在吃饭')

# 一个Student类可以创建N多个Student类地实例对象,每个实例对象的属性值不同
stu1 = Student('张三', 20)
stu2 = Student('李四', 30)
print(id(stu1))
print(id(stu2))
print('------为stu2动态绑定性别属性------')
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()方法,故会报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小翔很开心

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

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

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

打赏作者

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

抵扣说明:

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

余额充值