第104课时: 类: 方法没有重载 方法的动态性
方法没有重载:
在python中 方法的参数没有类型(调用时确定参数类型)
所以,建议不使用重名的方法!!!
class student:
def say(self):
print('算工资拉.....')
def say(self, salary):
print('算工资拉.....{0}'.format(salary))
p1 = student()
p1.say()
报错,第二个say方法覆盖了第一个,
所以你调用say方法没有传递参数就会报错。
这个就没有报错:
class student:
def say(self):
print('算工资拉.....')
def say(self, salary):
print('算工资拉.....{0}'.format(salary))
p1 = student()
p1.say(30)
算工资拉…30
方法的动态性:
Python是动态语言,我们可以动态的去修改结构,或者动态的修改类的已有的方法。
将外部的函数当作类的方法传递给类。
class student:
def say(self):
print('算工资拉.....')
def pay(self,a):
print('发钱{0}'.format(a))
student.pay=pay
p=student()
p.say()
p.pay(20)
算工资拉…
发钱20
student.pay=pay 这句话相当于将 pay 这个函数 当作类的方法student.pay 赋给类对象student。
一起都是对象!!!可以互相传递引用。