封装多态
# class Student:
#
# def __init__(self,name,sex):
# self.name = name
# self.sex = sex
#
# liye = Student('李业','laddy_boy')
# print(liye.sex)
# 多态:
# python 一个变量可以指向多种数据.
# a = [1, 2, 3]
# a = 'sdfasdf'
'''
java:
int a = 123
def func(int x):
print(x)
def func(x):
print(x)
'''
# class A:
#
# def login(self):
# print('登录')
#
# def register(self):
# print('注册')
#
# def func1(self):
# pass
#
# def func2(self):
# pass
#
#
# class B:
#
# def login(self):
# print('登录')
#
# def register(self):
# print('注册')
#
# def func3(self):
# pass
# A B互为鸭子.
# 赵嘎: 1. 好记.
# 虽然A,B两个类没有关系,但是我统一两个类中相似方法的方法名,在某种意义上统一的标准.
# index ,index, index,
# str
# list
# a = [1,2,3]
# a = list('123')
# print(a)
# print('字体变色,但无背景色')
# 固定的头尾: 33[ 33[0m
# 1;35;0m 具体调节的参数
# print(' 33[1;32;0m字体变色,但无背景色 33[0m') # 有高亮 或者 print(' 33[1;35m字体有色,但无背景色 33[0m')
# print(' 33[1;33;0m字体变色,但无背景色 33[0m') # 有高亮 或者 print(' 33[1;35m字体有色,但无背景色 33[0m')
# print(' 33[1;45m 字体不变色,有背景色 33[0m') # 有高亮
# print(' 33[1;35;46m 字体有色,且有背景色 33[0m') # 有高亮
print(' 33[0;35;0m 字体有色,且有背景色 33[0m') # 无高亮
print(' 33[1;35;0m 字体有色,且有背景色 33[0m') # 无高亮
print(' 33[4;35;0m 字体有色,且有背景色 33[0m') # 无高亮
# print(' 33[5;35;0m 字体有色,且有背景色 33[0m') # 无高亮
super深度剖析
# 严格按照mro的执行顺序去执行
# class A:
# def f1(self):
# print('in A f1')
#
# def f2(self):
# print('in A f2')
#
#
# class Foo(A):
# def f1(self):
# super(Foo,self).f2() # 按照self对象从属于类的mro的顺序,执行Foo类的下一个类.
# print('in A Foo')
#
# obj = Foo()
# obj.f1()
# class A:
# def f1(self):
# print('in A')
#
# class Foo(A):
# def f1(self):
# super(Foo,self).f1()
# print('in Foo')
#
# class Bar(A):
# def f1(self):
# print('in Bar')
#
# class Info(Foo, Bar):
# def f1(self):
# super(Info,self).f1() # 按照self对象从属于类的mro的顺序,执行Info类的下一个类.
# print('in Info f1')
# print(Info.mro())
# # [Info'>, Foo'>, Bar'>, A', 'object'>]
# obj = Info()
# obj.f1()
class A:
def f1(self):
print('in A')
class Foo(A):
def f1(self):
super().f1()
print('in Foo')
class Bar(A):
def f1(self):
print('in Bar') # 1
class Info(Foo,Bar):
def f1(self):
super(Foo,self).f1()
print('in Info f1') # 2
# [Info Foo Bar A]
obj = Info()
obj.f1()