知行编程网知行编程网  2022-11-07 19:00 知行编程网 隐藏边栏  5 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python的魔法方法是什么的相关知识,希望可以帮到处于编程学习途中的小伙伴


python的神奇方法是什么


_ _init_ _()方法

在上面的演示中,我们为 BMW 对象添加了一个属性名称。想象一下,如果我们再次创建一个对象,我们还必须添加属性。显然,这很麻烦,那么有没有办法创建一个对象呢?顺便说一句,什么时候设置汽车对象的属性?

答案就是:_ _init_ _()方法

1、使用方法

class 类名:
    #初始化方法,用来完成一些默认的设定
    def __init__():
        pass

2、_ _init_ _()方法的调用

class Car:
    def __init__(self):
        self.name = "宝马"
    def move():
        print("车在跑")
#创建对象
bmw = Car()
print("这是一辆%s牌汽车"%bmw.name)

运行结果为:这是一辆宝马牌汽车

说明:创建Car对象时,不调用__init__()方法,bmw默认有name属性BMW。

3、自定义_ _init_ _()方法

class Car:
    def __init__(self,newName,newColor):
        self.name = newName
        self.color = newColor
    def move():
        print("车在跑")
#创建对象
bmw = Car("宝马","黑色")
print("这是一辆%s牌汽车"%bmw.name)
print("这辆汽车的颜色是%s"%bmw.color)

运行结果为:

这是一辆宝马牌汽车
这辆汽车的颜色是黑色


说明:

__init__() 方法,在创建对象时默认调用,不需要手动调用。

__init__() 方法默认有一个参数名 self。如果创建对象时需要传递2个参数,那么__init__()除了第一个参数self之外还需要2个参数,例如__init__(self, x, y)。

__init__()方法中的self参数不需要开发者传入,python解释器会自动传入当前对象的引用。


_ _str_ _()方法

class Car:
    def __init__(self,newName,newColor):
        self.name = newName
        self.color = newColor
    def move():
        print("车在跑")
    def __str__(self):
        msg = "你好,我是一辆%s的%s牌汽车"%(self.color,self.name)
        return msg
#创建对象
bmw = Car("宝马","黑色")
print(bmw)

运行结果为:你好,我是一辆黑色的宝马牌汽车


说明:

python中,如果方法名是__XXX__(),它有一个特殊的功能,所以被称为“魔法”方法。

使用 print 输出对象时,只要定义了 __str__() 方法,该方法中的返回数据就会被打印出来。


self

所谓self,可以理解为自己。

self可以理解为C++或Java中的this指针,也就是对象本身的意思。

当一个对象调用__init__()方法时,python解释器会将该对象作为第一个参数传递给self,因此开发者只需要传递以下参数即可。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享