python面向对象——01 类属性与对象属性,从月饼中得到领悟



本人本来是写java的程序员,现在搞python自动化,有时候就感觉python好随意,很多地方都是凭感觉,虽然能实现工作中的大部分功能,但是一知半解,所以决心系统的学习一下python。这里面向对象是在B站上看一位up主的视频,他讲的真的非常好,我仅记录部分内容,截图很多[来自他的视频],(https://space.bilibili.com/28688276),加个传送门,以示尊重~

核心内容:
类就是生产月饼的模具,如果模具上有一个明字,那么可以在用这个模子做出来的月饼上找到明字,如果你在月饼上找当然可以找到这个明。你又在月饼另一面加了团圆二字,在模具上当然是不会有这两个字的。这里的明就是类属性,团圆是对象属性,也叫实例属性

一、面向对象

1、python面向对象与其他语言区别

概念我就不阐述了,python是一个非常彻底的面向对象OOP的语言。看下图就恍然大悟了~
在这里插入图片描述

2、面向对象与面向过程

二者都是解决问题的一种方式,思想
在这里插入图片描述红框里的都是对象,面向对象可以说只关注对象就可以了,各自做各自的事情就可以了。面向对象像是个包工头,负责瞎指挥就行了。面向过程是你自己打工,什么都要自己做,难受~
在这里插入图片描述

3、总结

面向对象其实是对面向过程的总结。所以面向对象最重要的就是要完成某个功能,需要哪些对象去处理
在这里插入图片描述

二、类与对象的属性

对象抽象出类,类可以实例化出对象。这里我比较熟就不记了,哈哈哈,如何在python中定义类?如下是最简单的类的创建了,如果在java里,定义一个对象是Person zhangsan=new Person()语法上的确麻烦很多。记住万物皆对象,这个Person类其实在创建的时候就会在内存中开辟一块空间,专门放这个类,且类的名字是Person,如果Person=666是可以的,这个时候只是吧Person的引用指向了另外一个地方,因为Person类的本质其实也是个对象。这里可能就有点绕了,DDDD
在这里插入图片描述
根据类产生的对象怎么知道是这个Person类而不是Dog类呢,比如怎么知道你是人而不是狗,对象有一个__class__的属性,可以指向了类的。就像人的DNA差不多啊个人感觉
在这里插入图片描述

1、对象的属性

对象属性的操作

python里面可以直接给对象增加属性,还能删除对象的属性,就很离谱,我真的哭笑不得
在这里插入图片描述
居然可以修改已经生成的对象的类,简直太离谱啊…我一个Java转过来的真的震惊了,甚至让我感觉python里面怎么到处都是指针,笑哭了
在这里插入图片描述

2、类属性

知道了对象的属性操作,又因为万物皆对象,所以类也是对象。这么理解吧,类呢就像是做月饼的模具,一个个具体的月饼就是对象。那模具本身也是一个对象,也需要被做出来才能做月饼,这样就不难理解了吧,类的本质也是对象,所以类的属性操作和对象那是一样一样滴
在这里插入图片描述

3、属性的本质

从上面的试验可以卡出,不管是类属性,还是对象的属性。都可以通过__dict__这么一个字典打印出来。如果定义一个对象,是否可以直接修改这个字典,然后进行对象属性的操作呢
在这里插入图片描述

4、限定类的可添加哪些属性

一个对象可以任意添加属性,那就会造成麻烦。一个类就是模子,用来规范对象的,如果同一个模子的对象这么不同,就很难管理。所以需要限制住类产生的对象
在这里插入图片描述

六、方法

1、概念

描述一个目标的行为动作,这里的目标指的就是类或者对象
在这里插入图片描述
代码:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 面向对象的程序设计分为两种,一种是基于的,另一种是基于原型的。其基于的程序设计是最常见的一种,它主要涉及到两个概念,即对象是一个抽象的概念,它描述了一具有相同属性和方法的对象,而对象则是具体的实例。在基于的程序设计用于描述对象属性和方法,而对象则是的具体实现。因此,基于的程序设计更注重对象的封装、继承和多态等概念。 ### 回答2: 面向对象编程是一种程序设计范式,它把程序看作是一组对象的集合,每个对象都有一个特定的属性和方法。在Python,每个对象都是一个的实例,是一个抽象的概念,用于表示一组相似的对象对象的实例,它继承了属性和方法,同时可以拥有自己的属性和方法。 在Python定义的语法为: class ClassName: # 属性和方法 在定义,可以定义属性和方法,属性是一些数据,用来描述的特征;的方法是一些函数,用来描述的行为。同时,还可以继承其他属性和方法,通过继承,子可以重用父的代码,同时也可以增加自己的属性和方法。 在Python对象的创建和使用的语法为: object_name = ClassName() 在对象的创建过程,会调用的构造函数(__init__()方法),用来初始化对象属性和方法。然后,可以使用对象属性和方法来完成具体的任务。 在面向对象编程,有三个重要的概念,分别是封装、继承和多态。封装是指把数据和行为包装在一个,对外部隐藏具体的实现细节;继承是指子可以继承父属性和方法,在子可以重写父的方法和添加自己的方法;多态是指同一个方法可以在不同的对象上产生不同的结果,通过实现多态,程序可以更加灵活和可扩展。 最后,在Python,还可以通过__str__()方法来自定义对象的字符串表示方式,方便输出和调试。同时,还可以通过@property和@setter装饰器来实现属性的封装和保护。 总之,对象面向对象编程的基础,它提供了一种更加灵活和可扩展的编程方式,同时也对程序的设计和架构提出了更高的要求。因此,熟练掌握对象的相知识,是Python编程的基础和必备技能。 ### 回答3: Python面向对象编程(Object-Oriented Programming,OOP)是一种将数据和行为封装在一起,以创建对象心的思想。在Python,一切皆为对象,从简单的数字、字符串到复杂的列表、元组都是对象面向对象(Object-Oriented)编程最基本的两个概念是对象是一种数据型,是一组相数据和方法的描述。其实就是一个对象的模板,包含了它所描述的对象共有的属性和方法。Python定义的方法比较简单,使用键字`class`即可,例如: ```python class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print("汪汪!") ``` 上述代码定义了一个Dog,包含了Dog对象共有的属性(name和age)和方法(bark)。通过键字`def`定义Dog的方法,其`__init__`方法是一个特殊的方法,用于初始化对象属性。 当我们需要使用Dog时,需要将它实例化为一个对象。例如: ```python dog1 = Dog("小黑", 3) dog1.bark() # 输出:汪汪! ``` 上述代码创建了一个Dog对象,设置了它的name为“小黑”,age为3,然后调用了Dog的方法bark。 另外,Python还有一些内置函数,可以用于操作对象。例如: - `type`函数:用于返回对象型。使用方法为`type(object)` - `isinstance`函数:用于检查对象是否为指定的实例。使用方法为`isinstance(object, classinfo)` - `hasattr`函数:用于检查对象是否具有指定的属性。使用方法为`hasattr(object, name)` - `getattr`函数:用于获取对象属性值。使用方法为`getattr(object, name[, default])` - `setattr`函数:用于设置对象属性值。使用方法为`setattr(object, name, value)` 以上是Python定义和使用的基本语法和函数,掌握了这些知识后,可以尝试设计自己的并应用到实际的编程项目

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值