关于类型和对象

类型都有自己的特点!

Python中类型,一旦定义,就会自动添加特有的一些属性和行为,是从python定义的基础类型继承过来的!

面向对象:一切皆对象-> python中所有的东西都是由一个超级原始对象衍生出来的!

自己定义的类型~都会继承原始的这个对象~继承该对象的属性和行为

object – type

自定义类型,继承的[双下划綫开头和结尾的属性和函数]:魔法属性、魔法方法

魔法属性/方法:已经具备了一定功能的固有的属性和方法!

(1)]常见魔法属性和方法

输出:__str__():输出当前对象在内存中的地址十六进制表示字符串!

            __repr__(): 用于在交互模式下,直接操作变量时~获取变量数据的定义!

比较:__gt__():grant than大于

            __lt__(): less than小于

            __ge__(): grant or equals大于或者等于

            __le__(): less or equals小于或者等于

            __ne__(): not equals 不等于

            __eq__(): equals 等于

运算:__add__():加法

            __sub__():减法

            __mul__():乘法

            __truediv__():除法

            __floordiv__():整除


用户类型->创建多个对象-> 存放到一个集合中

[账号、密码、昵称]-> 需求认为:用户对象需要存放到一个集合中,不能存放重复账号的用户~如果账号相同~不能重复!

    定义一个用户类型[User]

    创建5个用户对象->2个用户对象和其他账号重复了-> 存放到一个集合中

    集合中不能存放重复账号的对象->结果:集合中只有三个用户对象!

    集合:可以存放多个数据,但是不能重复[哈希算法进行比较]

    对象:对象不是基础类型,不能直接操作~重写哈希算法和比较函数

    __hash__()    __eq__()

    实现:对象在集合中的剔重!


有一个列表中,包含了大量的数字数据,如果要剔除列表中的重复数字?

nums = [1,2,3,2,3,3,2,4,5,6,7,5,4,6,8,8,98,6,5]

nums_set = set(nums)

nums = list(nums_set)


面向对象:类型中公共的属性和方法

类:类型、数据类型、通过class关键字自定义的类型

通过类型创建对象,对象中包含了我们需要的属性数据和操作方法

该类型创建的所有对象,互相都是独立的!

但是:总有一些数据,是该类型所有的对象公共的!如~所有人都有一个最大年龄!

面向对象中~类型中提供了这样的操作:用于给所的对象提供公共的属性和操作方法

(1)公共属性:类属性

声明在类型的内部,方法的外部的属性!

普通属性:声明在方法中,通过self声明的~成员属性,是每个对象特有的!

(2)类型中的方法

成员方法/实例方法:就是属于类型的普通方法

    def 方法名称(self, ..):

成员方法,必须通过对象.成员方法() 调用!

类方法:属于当前类型的方法,可以通过类型、该类型的对象进行调用

@classmethod

def 类方法(cls, ..):

类方法:使用较少~特殊需求~在方法中要对当前类型进行操作:考虑使用类方法

静态方法:类型中的函数

可以被所有的对象、包括类型名称,进行调用

参数声明和普通函数没有任何区别!

@staticmethod

     def 静态方法(..):

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,219评论 6 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 01 身为女孩子的我们曾经都被人们这样说过:“你是一个女孩子,干嘛要那么拼啊?”“女孩子嘛,能养活自己就行了……”...
    暖箱小窝阅读 546评论 28 17
  • goenv GitHub 个人在Go语言学习过程中,当有多个工作空间时,每次都需要修改环境变量,甚是麻烦,借鉴Py...
    甚了阅读 3,221评论 0 0
  • 我不知道我写下这段文字,会不会被“请”去喝茶或者被骂,但是直率的性格决定我还是敲下了这段文字。从2014年6月高考...
    行者吟阅读 3,530评论 8 16