python类的参数_在Python中使用类中的参数

当我在Codecademy上学习

Python时,我遇到了这个问题,代码如下:

class Employee(object):

def __init__(self, name):

self.name = name

def greet(self, other):

print "Hello, %s" % other.name

class CEO(Employee):

def greet(self, other):

print "Get back to work, %s!" % other.name

ceo = CEO("Emily")

emp = Employee("Steve")

emp.greet(ceo)

ceo.greet(emp)

我想知道other.name在这里意味着什么?

self.name = name可以解释为实例对象的成员变量self.name被设置为等于name,所以我们可以说self是一个实例,name是它的属性,对吧?

并且,不是由ceo = CEO(“Emily”)分配给参数的“Emily”和由emp = Employee(“Steve”)分配给名称的“Steve”?它怎么可能这样使用?

最佳答案 类属性

other.name是任何类实例的name属性,它作为参数传递给greet()方法的另一个参数.

扩展示例

class Employee(object):

def __init__(self, name):

self.name = name

def greet(self, other):

print "Hello, %s" % other.name

class CEO(Employee):

def greet(self, other):

print "Get back to work, %s!" % other.name

ceo = CEO("Emily")

emp = Employee("Steve")

print emp.name, 'greets', ceo.name

emp.greet(ceo)

print

print ceo.name, 'greets', emp.name

ceo.greet(emp)

Steve greets Emily

Hello, Emily

Emily greets Steve

Get back to work, Steve!

进一步继承说明(编辑)

CEO继承了Employee定义的所有东西(比如name属性),但可以改变一些东西(比如改变greet()方法).

这是正在发生的事情:

>当该类的实例创建为ceo时,“Emily”将分配给CEO类的name属性.†

ceo = CEO("Emily")

>当将该类的实例创建为emp时,将“Steve”分配给Employee类的name属性.†

emp = Employee("Steve")

>在实例的greet()调用中,整个其他类实例通过该方法的其他参数传递给它.

emp.greet(ceo)

这将所有ceo传递给emp.greet(),以便emp.greet()可以从ceo访问某些内容,在本例中是ceo的名称.

>对ceo实例重复greet()调用

ceo.greets(emp)

†:这就是__init __()方法的用途. __init __()可以接受任何参数,分配任何内容或运行任何代码.只要创建了类的实例,就会调用它.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值