设为首页 加入收藏

TOP

python学习 day017打卡 类与类之间的关系(二)
2018-11-08 22:08:32 】 浏览:210
Tags:python 学习 day017 打卡 之间 关系
, key):
print(key) def __add__(self, other): # 在执行两个对象相加的时候自动调用 print("证明我来过") def __enter__(self): print("进来的时候") def __exit__(self, exc_type, exc_val, exc_tb): print("这里是出去") def __str__(self): # 当前对象的字符串表示形式 return "我的车很厉害" def __repr__(self): # 一个对象的官方字符串表示形式 return "我的车非常非常厉害" def __iter__(self): return (i for i in range(10)) # def __hash__(self): # return hash(self.pai) + hash(self.color) __hash__ = None c = Car("", "1.5T") # 在创建对象的时候会自动的调用__init__() 类名() ==> init() # c() # 对象() => __call__() # c["马化腾"] # 对象[任意参数] => __getitem__(item) # c["胡辣汤"] = "河南开封" # del c['上海小混沌大碗'] # c2 = Car("黑色", "1.8T") # cc = c+c2 # with c as m: # 装饰器 # print("哈哈哈") # # print("呵呵呵") # print(c) # 当打印一个对象的时候. 默认的去执行__str__ 根据__str__返回的结果进行打印 # print(repr(c)) print("%s" % c) # %s __str__ print("%r" % c) # %r __repr__ # c > c2 # great than # c< c2 # less than # c >= c2 # greate and equals for s in c: print(s)

 

 

创建对象的真正步骤:

首先,在执行类名()的时候.系统会自动先执行__new__()来开辟内存.此时新开辟出来的内存区域是空的.

紧随其后,系统自动调动__init__() 来完成对象的初始化工作.按照时间轴来算.

 

1.加载类

2.开辟内存(__new__)

3.初识化(__init__)

4.使用对象干xxx

class Car:
    def __init__(self, color, pai): # 初始化方法
        print("哪有地呀")
        self.color = color
        self.pai = pai

    # 这里才是真正的构造方法
    def __new__(cls, *args, **kwargs):
        print("我的天哪")
        # 固定的返回值
        return object.__new__(cls)

c = Car("红色", "京A66666") # 先执行__new__ 返回object.__new__(cls).把返回的空对象传递给 __init__()

print(c.color)
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇类与类之间的关系 下一篇第十七天-面向对象03-类与类的关系

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目