python类方法第一个参数_编程小白 问关于python当中类的方法的参数问题

代码如下:

# -*- coding:gb2312 -*-

class CarStore(object):

def order(self,car_type):

return Factory.select(car_type)

class Factory(object):

def select(car_type): #为什么这个地方的方法,没有self参数也可以运行?

if car_type == "索纳塔":

return Suonata()

elif car_type == "名图":

return Mingtu()

else:

print("没有您要的车型!")

class Car(object):

def move(self):

print("车在移动...")

def music(self):

print("正在播放音乐...")

def stop(self):

print("车在停止...")

class Suonata(Car):

def __init__(self):

print("索纳塔")

class Mingtu(Car):

def __init__(self):

print("名图")

car_store = CarStore()

suonata = car_store.order("索纳塔")

#car.move()

#car.music()

#car.stop()

suonata.move()

执行结果:

bVPoWG?w=177&h=99

这段代码本身是没有问题,可以执行的。

我的疑问是,为什么第七行代码def select(car_type): 这个地方明明没有self,也可以执行?我记得我在学类的时候,被教育实例方法里面每个方法都必须加上一个self的参数,这里居然没有,然后我在这个地方加上了self反而出错了,如下图:

bVPoW8?w=1009&h=575

结果反而运行出错:

bVPoXr?w=781&h=278

为什么会这样?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值