Python学习-面向对象__init__方法

本文深入探讨Python中的类与对象概念,详细解析__init__方法的作用及其实现流程,通过实例展示如何为对象动态创建属性,并介绍不同对象拥有各自属性和方法的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

__init__方法

class Phone():
    #魔术方法之一:__名字__()
    def __init__(self):
        print("=====init===")
    # Phone类里面的方法:call
    def call(self):
        print("===price==")

phone1 =Phone()

输出:

=====init===

底层实现流程:
1.phone1 = Phone()利用类创建对象,读到phone()时,首先查找Phone()类。
2.利用Phone类,向内存申请一块和类同样大小的空间。
3.向Phone类中查找有没有__init__方法;若没有,则则将新空间赋值给phone1;
4.若有,则进入__init__方法,执行相应内容,再将内存赋值给对象phone1。
5.__init__中的self为新创建的空间地址,也就是对象phone1。

class Phone():
    #魔术方法之一:__名字__()
    def __init__(self):
        self.brand = "xiaomi"
        self.price = 4999
    # Phone类里面的方法:call
    def call(self):
        print("===price==",self.price)

phone1 =Phone()
phone1.call()
phone2 = Phone()
phone2.price = 5999
phone2.call()

其中,self.brand和self.price两句是在执行__init__方法时,在各自的对象内存中动态的创建了各自的属性。


class Person():
    def __init__(self,name,age):
        self.name = name
        self.age  = age

    def eat(self,food):
        print('{}正在吃{}!'.format(self.name,food))

    def run(self):
        print('{},今年{}岁了!'.format(self.name,self.age))

p1 = Person('小花',18)
p1.eat('肉夹馍')
p1.run()

p2 = Person('小驴',17)
p2.eat('汉堡包')
p2.run()
小花正在吃肉夹馍!
小花,今年18岁了!
小驴正在吃汉堡包!
小驴,今年17岁了!

可以为方法指定参数,那么不同的对象就有不同的属性和方法。参数需要调用时动态传入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值