首页 > 解决方案 > 如何将特定的实例变量传递给 Python 中的方法?

问题描述

我希望将一个特定的实例变量传递给一个方法,而不是简单地使用“self”,它不能区分我想将哪个变量应用于该方法。我知道我可以使用 self.printer() 但这并不能解决我如何应用单个变量的问题。

我是新来的课程,所以会很感激任何关于如何解决这个问题的建议。

简化示例:

class studentsObject:
    
    def __init__(self):
        self.name0 = 'Nick'
        self.name1 = 'Ben'
    
    def printer(name):
        print('Student name:',name)
        
    def runAll(self):
        print(printer(self.name0)) # I would like to pass ONLY name0 to printer method
        print(printer(self.name1)) # I would like to pass ONLY name1 to printer method

students = studentsObject()
students.runAll()

输出:

NameError: name 'printer' is not defined

标签: python-3.x

解决方案


您可能需要使用 self 调用打印机,因为它在同一个类中,您还需要在方法打印机中定义 self

class studentsObject:
    
    def __init__(self):
        self.name0 = 'Nick'
        self.name1 = 'Ben'
    
    def printer(self,name):
        print('Student name:',name)
        
    def runAll(self):
        print(self.printer(self.name0)) # I would like to pass ONLY name0 to printer method
        print(self.printer(self.name1)) # I would like to pass ONLY name1 to printer method

students = studentsObject()
students.runAll()

推荐阅读