类的方法里的形参可以重名吗?

来源:9-9 在实例方法中访问实例变量与类变量

大副大

2018-05-21

class Student():
    name = 'he'
    age = 0

def __init__(self, name, age):
    self.name = name
    self.age = age

def do_homework(self):
    print('homework')

def marking(self, score, name):
    self.score = score
    print(self.name + str(self.score))

有两个名字都是name的形参,怎么在类里面调用,用什么区别呢,如果都是self.name那会有问题吧

还是说要避免用同名的形参?


写回答

1回答

慕少9454475

2018-05-23

你在方法marking中添加个name的参数是什么目的呢?没有看明白,如果你的想法是将分数和名字传进去完全可以将score定义成一个类变量啊然后再方法marking中调用

class Student():
    # 将name age score定义成类变量
    name = 'he'
    age = 0
    score = 0

    # 构造函数
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    # def do_homework(self):
    #     print('homework')
    # marking方法不需要定义任何一个参数,直接使用self.name self.age self.score
    def marking(self):
        print("同学" + self.name + "的分数是:" + str(self.score))

    # 实例化类
student = Student("张三", 18, 60)
student.marking()
student1 = Student("李四", 20, 80)
student1.marking()
student2 = Student("王五", 22, 100)
student2.marking()

不知道你的想法是不是这样的

0
1
大副大
我这里用那么只是举个例子,两个实例的参数都有name这个名字,不过我知道这样应该是可以的,只要在实例函数里面用不同的参数来接收吧
2018-05-26
共1条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程