关于Python 类的属性及其 方法的参数类型 的一些要点

class Car():
    """一次模拟汽车的简单尝试"""

    def __init__(self, make, model, year=2016):
        """初始化描述汽车点的属性"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self,mileage):
        """返回整洁的描述性信息"""
        long_name =self.make + " " + str(self.year) + ' ' + self.model + '  ' +str(self.odometer_reading) + ' ' + srt(mileage)
        return long_name.title()

调用一个方法,需要注意两点:首先要保证其中的每个参数都有值,其次是每个参数值都是你想要的值。

方法get_descriptive_name(),其结果简单,但包含的5个参数属于多种类型(A、B、C、D):
(B)(C)属于给类属性设置默认值的两种不同方式
凡是通过__init__()函数进行初始化的变量都是类的属性,不管其有没有默认值,更不管设置默认值的方式
这五个参数中__init__()函数函数下的四个变量都是类Car的属性。但是mileage不是。

(A):如make, model,属于类的属性,而且是最普通最常见的情况。就按部就班地初始化,然后等实例给其提供值;

(B)如year,属于类的属性,但是属性year是在形参列表中将该属性设置为可选的,而且其初始化的过程同make, model并没有区别,等号右边仍然是形参year,而不是2016;

self.year = year

(C):如odometer_reading,属于类的属性,但是在初始化过程中设置了默认值,其等号右边不是形参odometer_reading,而是一个数字0(以这种方式设置默认值的属性,不能放到方法__init__()的括号中,但是它仍然是类Car的属性。正因为它是不在形参列表中的类的属性
所以它的初始值必须要明确:必须是数字和带引号的字符串那种,
还可以是一个实例(P150下的类Battery的实例Battery()被用作了类ElectricCar的属性battery的初始值。(其实这里的类Battery的实例Battery()的名称与ElectricCar的属性battery用不同的名字表示也可以,没有规定他们必须相同。但是大小写一定要弄对,尤其是大写。他这里没有给类Battery的实例起小写名字,所以用的等号左边的大写))。
反正是要求能实实在在地给这个属性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值