最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Python类与对象详解

来源:博客园

一、类和对象

类的意思:种类、分类、类别

对象是特征与技能的结合体,我可能有身高体重、而你也有身高体重,所以你会说你像我,但是你一定不会说你像阿猫阿狗。并且我和你其实就可以说成是一类,而你和选课系统不能说是一类,因此给出类的定义:类就是一系列对象相似的特征与技能的结合体。

  • 在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才了分类的概念


    【资料图】

  • 既然现实世界中有类这个概念,Python程序中也一定有类这个概念,但是在Python程序中:必须先定义类,然后调用类来产生对象。

  • 类:一切具有相同属性和方法的对象组成的

二、现实世界中定义类和对象

1定义对象

拿我们的选课系统来说的话,我们先总结一套现实世界中的学生对象

对象1:    特征:        学校 = ’xiwangzhongxue‘        姓名 = ’小明‘        年龄 = 18        性别 = ’male‘    技能:        选课        学习对象2:    特征:        学校 = ’xiwangzhongxue‘        姓名 = ’小红‘        年龄 = 18        性别 = ’male‘    技能:        选课        学习

2定义类

站在未来选课系统的角度,我们还可以总结现实世界中的学生类:

希望中学学生类:    相似的特征:        学校="xiwangzhongxue"    相似的技能        选课        学习

三、程序中定义类和对象

1定义类

曾经定义函数,函数只检测语法,不执行代码,但是定义类的时候,类体代码会在类定义阶段就立刻执行,并且会产生一个类的名称空间,也就是说类的本身其实就是一个容器/名称空间,是用来存放名字的,这是类的用途之一

定义类名时我们推荐使用驼峰体

关键字class 类名:

class Students:    # 定义对象相同的属性    shool = "xiwangzhongxue"        # 定义对象想的方法    def choice(self):        print("选课。。。。")            def study(self):        print("学习。。。。")

使用类

  • 类名()
  • Student()

2定义对象

调用类即可产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例

对象名 = 类名()

stu1 = Student() # 这个时候只是生成了一个对象stu1,对象本身没有任何属性print(stu1) # 打印的只是stu1对象在定义的时候生成的内存地址## python交流学习Q群:489111204

四、类和对象的使用

1获取类的属性和方法

  • __dict__方法

  • 返回的时一个字典(文件执行的模式、属性,方法(函数)的地址)

print(Student.__dict__){"module": "main", "school": "oldboy", "func1": , "func2": , "dict": , "weakref": , "doc": None}

2获取对象的属性和方法

  • __dict__方法
  • 返回是个字典
print(stu1.__dict__) # 返回的是一个空的字典,因为我们在定义这个stu1对象的时候,没有给它定义其他的属性{}

3类使用方法和对象使用类的方法的区别

类使用方法

  • 其实就是在调用函数
  • 类使用方法时,调用类的方法的时候必须向函数方法传进对应的参数
Student.choice(stu1) # 函数的第一个参数则是定义的对象名选课。。。。

对象使用类的方法

  • 调用类里的方法
  • 对象使用方法时,调用类不需要向方法传第一个参数
stu1.choice():选课。。。。

五、对象的属性赋值

1通过对象自身来赋值属性

stu1.name = "小明"print(stu1.__dict__)# 返回一个字典,字典包含的是对象自己的属性集合print(stu1.name) # 返回对象自己name的属性{"name":"小明"}小明

2通过类中的__init__的方法

# python交流学习Q群:489111204# 定义一个学生类class Student:    # 定义类的相同属性    school = "希望中学"    # 定义类的相同方法    # 定义类的属性方法    def __init__(self,name):        self.name = name    def choice(self):        print("选课...")    def study(self):        print("学习....")         # 实例化一个对象stu1 = Student("小明")# ()括号里传的是对象stu2的name属性值为"小明"print(stu1.__dict__)# 打印对象stu1的属性集合print(stu1.name)# 打印stu1的name的属性值

废了嘛?

关键词: 使用方法 希望中学