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

  • Post author:
  • Post category: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 __()可以接受任何参数,分配任何内容或运行任何代码.只要创建了类的实例,就会调用它.



版权声明:本文为weixin_42568714原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。