我是靠谱客的博主 甜甜大山,最近开发中收集的这篇文章主要介绍python全栈在线教学_Python全栈+数据分析系统辅导课,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

魔术方法:

在Python中,所有以“_ _”双下划线包裹起来的方法,都被统称“Magic Method”魔术方法

1. __new__

对象初始化:

先执行__new__:分配内存空间,并返回构建好的对象(的地址)

在执行__init__:为构建好的对象赋予初始值

#__new__中接收到的*arge和*kwargs会将接收到的参数自动传递给__init__中

2.__del__

从内存中清除对象的时候,对象会默认执行的方法

(1)程序完毕后,释放内存时

(2)执行del指令时

#只有当指向对象的所有变量都被删除的时候,对象空间才会被释放。

3. __call__将对象当作函数执行的时候会被默认调用

class Fight:

def __call__(self, *args, **kwargs):

print("__call__方法被调用了")

f = Fight()

f()  # __call__方法被调用了

应用:进行某些固定的不会因为对象改变而发生改变的常规操作

如飞机升空前的例行检查

4.__str__

(1)打印一个对象的时候,默认会被调用

(2)使用str() 对象被强制转化后,输出结果会被调用

# __str__返回值必须为字符串否则会报错

class Dog:

def __init__(self, name):

self.name = name

def __str__(self):

print(super().__str__())  # 通过调用父类对象的str方法,打印原有结果

return f"这是一只名叫{self.name}的狗"

d = Dog("哈哈")

# print(d, id(d))  # <__main__.dog object at> 2306330092040

print(d)  # 这是一只名叫哈哈的狗

5.__repr__

# 在可变容器中,对象打印会默认调用__repr__

class Dog:

def __init__(self, name):

self.name = name

def __str__(self):

print("__str__")

return f"这是一只名叫{self.name}的狗"

def __repr__(self):

print("__repr__")

return f'dog:{self.name}'

d = Dog("哈哈")

print(d)

x = [d]

print(x)

# 结果

# __str__

# 这是一只名叫哈哈的狗

# __repr__

# [dog:哈哈]

最后

以上就是甜甜大山为你收集整理的python全栈在线教学_Python全栈+数据分析系统辅导课的全部内容,希望文章能够帮你解决python全栈在线教学_Python全栈+数据分析系统辅导课所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部