这是一个学习python面向对象的例子,涉及到类、继承、静态方法、私有方法、方法重写、方法调用、创建对象等。
1)代码
class PublicUser:
@staticmethod
def pub_movie():
print("所有用户都可以看免费视频!")
@staticmethod
def login():
print("看免费视频不需要登陆!")
# vip用户也可以看免费视频,所以让它继承PublicUser
class VipUser(PublicUser):
def __init__(self, user, vip_list):
self.user = user
self.vip_list = vip_list
# 方法重写
def login(self):
print("看vip视频需要登陆")
# 定义私有方法
def __vip_movie(self):
print("欢迎vip用户{}!".format(self.user))
print("这里是vip视频!")
# vip用户才可以看vip视频
def self_movie(self):
if self.user in self.vip_list:
self.__vip_movie()
else:
print("欢迎游客{}!".format(self.user))
print("{}您需要购买会员才可以看vip视频!".format(self.user))
if __name__ == '__main__':
vip_user = ["root", "Danny"]
vip = VipUser("Danny", vip_user)
vip.pub_movie()
vip.self_movie()
vip.login()
print("------------------------")
vip2 = VipUser("Tom", vip_user)
vip2.pub_movie()
vip2.self_movie()
PublicUser.login()