在方法中获取类属性

  • 本文关键字:属性 获取 方法 python
  • 更新时间 :
  • 英文 :


我有这样一个类和方法:

class Person(object):            
def __init__(self, name):
self.name = personname
self.surname = personsurname
def changenameorsurname(self, x, y):
self.x = y
return
AdamSmith = Person ("Adam", "Smith")

我想使用方法changenameorsurname来改变AdamSmithnamesurname,但是如果我使用这个代码,我得到的是NameError">

AdamSmith.changenameorsurname(personname, Dave)

结果:

NameError: name personname is not defined.

有优雅的方式来引用personname在这样的代码?还是需要像这样创建两个独立的方法?

def changename(self,  y):
self.name = y
return
AdamSmith.changename(Dave)

有几个问题。你的init方法需要被修正,这样你才能正确地构造一个Person对象。您可以让您的changenameor姓氏()方法接受一个参数是姓名,另一个参数确定该名称是名还是姓。这里,我将默认值设置为名字。

class Person:
def __init__(self, first_name, surname):
self.first_name = first_name
self.surname = surname
def changenameorsurname(self, name, first = True):
if first:
self.first_name = name
else:
self.surname = name
def __str__(self):
return f'{self.first_name} {self.surname}'
some_guy = Person ("Adam", "Smith")
print(some_guy) #Adam Smith
some_guy.changenameorsurname("Michael")
print(some_guy) #Michael Smith
some_guy.changenameorsurname("Jones", first=False)
print(some_guy) #Michael Jones

最新更新