首页 > 编程语言 >Python类与对象详解

Python类与对象详解

时间:2023-01-02 16:12:51浏览次数:48  
标签:__ stu1 定义 选课 Python 对象 详解 print

一、类和对象

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

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

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

  • 既然现实世界中有类这个概念,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
<main.Student object at 0x000001EE24F2C198>

四、类和对象的使用

1获取类的属性和方法

  • __dict__方法

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

print(Student.__dict__)

{'module': 'main', 'school': 'oldboy', 'func1': <function Student.func1 at 0x000001EE25195620>, 'func2': <function Student.func2 at 0x000001EE2C0C59D8>, 'dict': <attribute 'dict' of 'Student' objects>, 'weakref': <attribute 'weakref' of 'Student' objects>, '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的属性值

废了嘛?

标签:__,stu1,定义,选课,Python,对象,详解,print
From: https://www.cnblogs.com/python1111/p/17020026.html

相关文章

  • Python重用父类方法
    一、重用父类方法1与继承没有关系的重用指名道姓的使用在子类里想用父类的方法,我们可以直接用父类名.方法名()--->父类里方法有几个参数就传几个参数我们看起来......
  • Linux下更新Python版本
    参考:安装图形化配置解析工具_LiteOS_编译和开发工具_Linux下的编译_搭建Linux编译环境_华为云(huaweicloud.com)系统:Centos7$uname-aLinuxlocalhost.localdom......
  • Python类的封装教程
    一、什么是封装封装的本身意思其实就和闭包函数一样,就是把一个函数和变量全都包在一起,但其实这样的说法不是很具体,就是一种很片面的解释二、为什么要封装封装数据的主要......
  • 漫谈C++内存和OpenGL各种缓冲对象(下)
    OpenGL的纹理缓冲对象创建、释放、使用    纹理用于给模型贴上颜色,类似于顶点缓冲也是GPU中的一块显存,用图片格式保存了CPU段传入的数据。纹理属性包括纹理大小、......
  • 【Java自动化测试】-Mock操作详解
    一、moco框架下载地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.3.0/moco执行:java-jar./moco-runner-1.3.0-standalone.jarhttp-p8888......
  • 开发板测试手册——系统启动、文件传送操作步骤详解(1)
    目录前言41评估板快速测试51.1系统启动测试51.2文件传送测试111.2.1通过Linux系统启动卡111.2.2通过OpenSSH121.3LED测试151.4KEY测试151.......
  • 开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)
    目录4USB4G模块测试414.1网络功能测试424.2短信功能测试434.3GPS定位功能测试444.4通话功能测试454.5测试程序编译465USB网口模块测试47 前......
  • 面向对象
    面向对象oop面向对象的本质就是,以类的方式组织代码,以对象的组织(封装)数据。抽象三大特征:封装,继承,多态值传递与引用传递packageoop;//值传递publicclassDemo1{......
  • 第十二章《文件与I/O流》第4节:对象序列化
    ​对象序列化和反序列化是Java程序中经常涉及的操作,Java语言提供了专门用于序列化对象的ObjectOutputStream类和用于反序列化的ObjectInputStream类,这使得Java语言完成序列......
  • python调用sklearn库实现svr拟合数据
    参考的是b站南方小鱼儿的代码,参考网址:SVR模型对连续量的预测(SVM)02-生成样本数据_哔哩哔哩_bilibili代码如下importnumpyasnpfromsklearn.svmimportSVRimpor......