Python中_init_()方法与self参数

前言

初学Python面向对象时,虽然学过Java,想着已经接触过面向对象思维了,上手这节应该很快就过了,但马上就发现自己还是too young too simple。不过幸好在经历了一番挣扎之后,终于弄懂了这一切,接下来分享一下自己学_init_方法与self参数的心得。

Python类所包含的最重要的两个成员就是变量和方法,其中类变量属于类本色,用于定义该类本身所包含的状态和数据;而实例变量则属于该类的对象,用于定义对象所包含的状态数据;方法则用于定义该类的对象的行为或功能实现。
在类中定义的方法默认是实例方法,定义实例方法的方法与定义函数的方法基本相同,只是实例方法的第一个参数会被绑定到方法的调用者(该类的实例)——因此实例方法至少应该定义一个参数,该参数通常会被命名为self(默认命名)“实例方法的第一个参数不一定要叫self,只是约定俗成的把这个参数命名为self,这样具有最好的可读性”。

话不多说,代码奉上

class Car():    # 创建一个类,类的名称为Car,通常按规范,类的名称首字母大写
    '''汽车目前价值估计程序'''
    def __init__(self, make, model, year):
        # 当类Car被创建一个对象时,Python会自动运行该方法
        # 下划线是一种约定,避免Python默认的方法与普通方法名称冲突
        # self必不可少,且必须位于其他形参的前面,可以用来保存参数
        self.make = make
        self.model = model
        self.year = year
    def detection(self):
        # 方法detection
        duration = 2018-self.year  # 持续时间
        price = 30-2*duration
        long_name = "你的"+self.make+self.model \
                    +"到目前已经行驶了"+str(duration)\
                    +"年,"+"目前价值"+str(price)+"万"
        return long_name
my_car = Car("Audi"," A4", 2013)
print(my_car.year)
result = my_car.detection()
print(result)
your_car = Car("奔驰"," c200", 2012)
result = your_car.detection()

接下来我们来解析一下这些代码,我们创建了一个Car类,里面有一个_init_()方法,这就相当于Java里面的构造器,只不过Java里面在构造器里面就传入的参数,Python中专门有一个构造器来传参,第一个参数self可以理解为Car本身,代码里面的self.make = make和Java里面的参数传递类似,此处这么写的目的,就是把各个参数存入self中,也就是实例化的对象之中,使对象有了make,model,year等属性,后面的方法detection中传入了self也就是这个对象本身,在其方法中,就可以对Car中的year,make等属性进行操作了。

这样操作的好处:保存参数。众所周知,函数的参数只能在函数内部使用,但我们使用self,就可以把self传入其他函数,其他函数也就可以使用传入self里面的参数了。

初次上手Python,如有解析错误,希望得到大佬们的指导。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值