- 1. 方法没有重载
- 2. 方法的动态性
- 3. 私有属性和私有方法
- 4. @property 装饰器
- python中,方法没有重载;
- 定义一个方法即可有多种调用方式,相当于实现了其他语言中的方法的重载;
- 如果在类体中定义了多个重名的方法,只有最后一个方法有效;
2. 方法的动态性
- 可以动态的为类添加新的方法,或者动态的修改类的已有的方法;
class Person:
def work(self):
print("努力上班!")
def play_game(self):
print("{0}玩游戏".format(self))
def work2(s):
print("好好工作,努力上班!")
Person.play = play_game
Person.work = work2
p = Person()
p.play()
p.work()
# Person新增了play_game 方法,并用work2替换了work;
3. 私有属性和私有方法
- Python对于类的成员没有严格的访问控制限制;
- 要点:
- 约定两个下划线开头的属性是私有的(private),其他为公共的(public);
- 类内部可以访问私有属性(方法);
- 类外部不能直接访问私有属性(方法);
- 类外部可以通过“__ 类名 __ 私有属性(方法)名”访问私有属性(方法);
4. @property 装饰器
- @property 可以将一个方法的调用方式变成“属性调用”;
class Employee: def __init__(self,name,salary): self.name = name self.__salary = salary @property def salary(self): return self.__salary; @salary.setter def salary(self,salary): if(0



