本文为博主原创,未经授权,严禁转载及使用。
本文链接:https://blog.csdn.net/zyooooxie/article/details/123655926
继续学习Python,继续更新。
这是我自己学习Python的系列博客: https://blog.csdn.net/zyooooxie/category_9592654.html
个人博客:https://blog.csdn.net/zyooooxie
_init_()
https://docs.python.org/zh-cn/3.8/reference/datamodel.html#object._init_
"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@wechat: 153132336
"""
def test_0():
pass
def func_1(arg_str: str):
return arg_str * 2
class A(object):
def print_(self):
Log.info('A')
return self
class ClassA(object):
def __init__(self, str_a, tuple_=(1,)):
Log.info(self)
Log.info(str_a)
Log.info(tuple_)
self.str_a = str_a
self.str_a2 = func_1(str_a)
Log.info(self.str_a2)
self.ins_A = A()
Log.info(self.ins_A)
self.func_A = A().print_()
Log.info(self.func_A)
def print_(self):
Log.info(self)
Log.info(f'{self.str_a, self.str_a2, self.ins_A, self.func_A}')
if __name__ == '__main__':
pass
ca1 = ClassA('zyooooxie')
Log.info('********')
ca1.print_()
Log.info('********')
a = A()
a.print_()
Log.info('********')
A.print_(a)
_init_() + super() + 单继承
super() 的用法 可以参考 https://blog.csdn.net/zyooooxie/article/details/123639025
"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@wechat: 153132336
"""
class Parent0(object):
def __init__(self):
Log.info('Parent0 的 __init__()')
self.p = 'Parent0 的 属性p'
class Parent1(object):
def __init__(self, arg1):
Log.info('Parent1 的 __init__()')
self.p = 'Parent1 的 属性p'
self.arg1 = arg1
class Parent2(object):
pass
class Parent3(object):
def __init__(self, arg1, arg2=(1,)):
self.arg1 = arg1
self.arg2 = arg2
Log.info('Parent3 的 __init__()')
self.p = 'Parent3 的 属性p'
class Parent4(object):
def __init__(self, arg1, *args, **kwargs):
self.arg1 = arg1
self.arg2 = args
self.kwargs = kwargs
Log.info('Parent4 的 __init__()')
self.p = 'Parent4 的 属性p'
class Son(Parent0):
pass
class Son1(Parent1):
pass
class Son2(Parent2):
pass
class Son3(Parent2, Parent1):
pass
class Son4(Parent0, Parent1):
pass
class Son5(Parent2):
def __init__(self):
Log.info('Son5 的 __init__()')
self.pp = 'Son5'
class Son6(Parent1):
def __init__(self):
Log.info('Son6 的 __init__()')
self.pp = 'Son6'
class Son7(Parent0):
def __init__(self):
Log.info('Son7 的 __init__()')
super(Son7, self).__init__()
Log.info(self.p)
self.pp = 'Son7'
class Son8(Parent1):
def __init__(self, arg1):
Log.info('Son8 的 __init__()')
super().__init__(arg1)
Log.info(self.p)
Log.info(self.arg1)
self.pp = 'Son8'
class NewSon1(Parent3):
pass
class NewSon2(Parent4):
pass
class NewSon3(Parent4):
def __init__(self, arg1):
Log.info('NewSon3 的 __init__()')
super().__init__(arg1)
self.pp = 'NewSon3'
class NewSon4(Parent4):
def __init__(self, arg1):
Log.info('NewSon4 的 __init__()')
self.pp = 'NewSon4'
super(NewSon4, self).__init__(arg1, 'NewSon4给的')
Log.info(self.__dict__)
super().__init__('再来一次')
Log.info(self.__dict__)
class Grandchild(Son):
def __init__(self):
Log.info('Grandchild 的 __init__()')
self.ppp = 'Grandchild'
class Grandchild2(Son1):
def __init__(self, arg1, arg11):
Log.info('Grandchild2 的 __init__()')
super(Grandchild2, self).__init__(arg1)
self.arg11 = arg11
self.ppp = 'Grandchild2'
class Grandchild3(Son2):
pass
class Grandchild4(Son3):
def __init__(self, arg1):
Log.info('Grandchild4 的 __init__()')
super().__init__(arg1)
self.ppp = 'Grandchild4'
class Grandchild5(Son4):
def __init__(self):
Log.info('Grandchild5 的 __init__()')
super().__init__()
self.ppp = 'Grandchild5'
class Grandchild6(Son5):
pass
class Grandchild7(Son6):
def __init__(self):
Log.info('Grandchild7 的 __init__()')
super(Grandchild7, self).__init__()
self.ppp = 'Grandchild7'
class Grandchild8(Son7):
def __init__(self):
Log.info('Grandchild8 的 __init__()')
super(Grandchild8, self).__init__()
self.ppp = 'Grandchild8'
class Grandchild8_A(Son7):
pass
class Grandchild9(Son8):
def __init__(self):
Log.info('Grandchild9 的 __init__()')
self.ppp = 'Grandchild9'
class NewGrandchild(NewSon1):
def __init__(self, arg1, *args):
Log.info('NewGrandchild 的 __init__()')
Log.info(args)
super(NewGrandchild, self).__init__(arg1, args[0] if len(args) > 1 else '没有多传的参数')
self.ppp = 'NewGrandchild'
class NewGrandchild2(NewSon2):
def __init__(self, arg1, *args):
Log.info('NewGrandchild2 的 __init__()')
super(NewGrandchild2, self).__init__(arg1, *args)
class NewGrandchild2_A(NewSon2):
def __init__(self, *args, **kwargs):
Log.info('NewGrandchild2_A 的 __init__()')
super(NewGrandchild2_A, self).__init__(*args, **kwargs)
def test_1():
s = Son()
Log.info(s.__dict__)
Log.info('*')
s1 = Son1('--Son1--')
Log.info(s1.__dict__)
Log.info('**')
s2 = Son2()
Log.info(s2.__dict__)
Log.info('***')
s3 = Son3('--Son3--')
Log.info(s3.__dict__)
Log.info('****')
s4 = Son4()
Log.info(s4.__dict__)
Log.info('*****')
s5 = Son5()
Log.info(s5.__dict__)
Log.info('******')
s6 = Son6()
Log.info(s6.__dict__)
Log.info('*******')
s7 = Son7()
Log.info(s7.__dict__)
Log.info('********')
s8 = Son8('--Son8--')
Log.info(s8.__dict__)
def test_2():
Log.info('-')
ns1 = NewSon1('NewSon1传的')
Log.info(ns1.__dict__)
ns1 = NewSon1('NewSon1传的', '这个是新arg2')
Log.info(ns1.__dict__)
Log.info('--')
ns2 = NewSon2('NewSon2传的')
Log.info(ns2.__dict__)
ns2 = NewSon2('NewSon2传的', '传一个')
Log.info(ns2.__dict__)
ns2 = NewSon2('NewSon2传的', '随便', '给', key1='v1', key2='v2')
Log.info(ns2.__dict__)
Log.info('---')
ns3 = NewSon3('NewSon3传的')
Log.info(ns3.__dict__)
Log.info('----')
ns4 = NewSon4('NewSon4传的')
def test_3():
Log.info('+')
g1 = Grandchild()
Log.info(g1.__dict__)
Log.info('++')
g2 = Grandchild2('g2', 'g2 的 arg11')
Log.info(g2.__dict__)
Log.info('+++')
g3 = Grandchild3()
Log.info(g3.__dict__)
Log.info('++++')
g4 = Grandchild4('g4')
Log.info(g4.__dict__)
Log.info('+++++')
g5 = Grandchild5()
Log.info(g5.__dict__)
Log.info('++++++')
g6 = Grandchild6()
Log.info(g6.__dict__)
Log.info('+++++++')
g7 = Grandchild7()
Log.info(g7.__dict__)
Log.info('++++++++')
g8 = Grandchild8()
Log.info(g8.__dict__)
Log.info('++++++++')
g8 = Grandchild8_A()
Log.info(g8.__dict__)
Log.info('+++++++++')
g9 = Grandchild9()
Log.info(g9.__dict__)
def test_4():
Log.info('/')
ng = NewGrandchild('NewGrandchild')
Log.info(ng.__dict__)
ng = NewGrandchild('NewGrandchild', 'ng的arg2', 'ng的arg3')
Log.info(ng.__dict__)
Log.info('//')
ng2 = NewGrandchild2('NewGrandchild2')
Log.info(ng2.__dict__)
ng2 = NewGrandchild2('NewGrandchild2', 'ng2的arg2')
Log.info(ng2.__dict__)
ng2 = NewGrandchild2('NewGrandchild2', 'ng2的arg2', 'ng2的arg3', 'ng2的arg4')
Log.info(ng2.__dict__)
ng2 = NewGrandchild2_A('NewGrandchild2_A', 'ng2的arg2', ng2='ng2的value', ng2222='ng2的value2222')
Log.info(ng2.__dict__)
ng2 = NewGrandchild2_A('NewGrandchild2_A', ng2='ng2的value')
Log.info(ng2.__dict__)
x =+ 1 、x = x + 1 、x += 1
"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@wechat: 153132336
"""
def test_0302a():
abc = 999
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc += 0
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc += 10
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc += 0
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
Log.info('-----')
list_abc = list()
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc += []
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc += [1]
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
Log.info('-----')
str_abc = 'ABC'
Log.info(f'{str_abc, type(str_abc)}')
Log.info(id(str_abc))
str_abc += 'abc'
Log.info(f'{str_abc, type(str_abc)}')
Log.info(id(str_abc))
def test_0302b():
abc = 999
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc1 = abc + 1
Log.info(f'{abc1, type(abc1)}')
Log.info(id(abc1))
abc = abc + 1
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc2 = abc + 1
Log.info(f'{abc2, type(abc2)}')
Log.info(id(abc2))
Log.info('-----')
list_abc = list()
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc1 = list_abc + [1]
Log.info(f'{list_abc1, type(list_abc1)}')
Log.info(id(list_abc1))
list_abc = list_abc + [1]
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc2 = list_abc + [1]
Log.info(f'{list_abc2, type(list_abc2)}')
Log.info(id(list_abc2))
Log.info('-----')
str_abc = 'ABC'
Log.info(f'{str_abc, type(str_abc)}')
Log.info(id(str_abc))
str_abc1 = str_abc + 'abc'
Log.info(f'{str_abc1, type(str_abc1)}')
Log.info(id(str_abc1))
str_abc = str_abc + 'abc'
Log.info(f'{str_abc, type(str_abc)}')
Log.info(id(str_abc))
def test_0302c():
abc = 999
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc = + 1
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc1 = + 1
Log.info(f'{abc1, type(abc1)}')
Log.info(id(abc1))
abc = - 1
Log.info(f'{abc, type(abc)}')
Log.info(id(abc))
abc2 = - 1
Log.info(f'{abc2, type(abc2)}')
Log.info(id(abc2))
Log.info('-----')
list_abc = list()
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc = + 1
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc1 = + 1
Log.info(f'{list_abc1, type(list_abc1)}')
Log.info(id(list_abc1))
list_abc = - 1
Log.info(f'{list_abc, type(list_abc)}')
Log.info(id(list_abc))
list_abc2 = - 1
Log.info(f'{list_abc2, type(list_abc2)}')
Log.info(id(list_abc2))
itertools模块
https://docs.python.org/zh-cn/3.8/library/itertools.html
介绍些 我自己常用:
"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@wechat: 153132336
"""
def test_itertools():
abc = itertools.starmap(os.path.join, [('/bin', 'python'), ('/usr', 'bin', 'java')])
Log.info(abc)
Log.info(list(abc))
abc = itertools.compress([1, 2, 3, 4, 5], [True, True, False, False, True])
Log.info(abc)
Log.info(list(abc))
pass
def test_2():
from itertools import count
list_1 = [1, 22, 333, 444, 555, 666, 777, 8]
abc = zip(list_1, count(5))
Log.info(type(abc))
Log.info(list(abc))
c1 = count(100, step=5)
Log.info(type(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
Log.info(next(c1))
abc = map(lambda x: x if x < 12 else -x, count(5, 2))
Log.info(type(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
Log.info(next(abc))
def test_5():
from itertools import repeat
abc = repeat(22, times=5)
Log.info(type(abc))
Log.info(list(abc))
abc = repeat([22, 23, 24], 8)
Log.info(type(abc))
Log.info(list(abc))
abc = map(pow, range(10), repeat(2, 5))
Log.info(type(abc))
Log.info(list(abc))
abc = map(pow, range(10), repeat(2, 15))
Log.info(type(abc))
Log.info(list(abc))
abc = zip(range(8), repeat([0, 1, 2, 3, 4]))
Log.info(type(abc))
Log.info(list(abc))
for i_index, i in enumerate(repeat(88)):
print(i_index, i)
if i_index >= 30:
print('结束')
break
def test_0():
from itertools import accumulate
list_ = [1, 200, 5, 3000, 60, 40000]
iter_1 = accumulate(list_)
print(type(iter_1))
Log.info(list(iter_1))
iter_2 = accumulate(list_, initial=800000)
Log.info(list(iter_2))
iter_3 = accumulate(list_, initial=70000, func=operator.mul)
Log.info(list(iter_3))
iter_4 = accumulate(list_, min)
Log.info(list(iter_4))
iter_5 = accumulate(list_, max)
Log.info(list(iter_5))
def test_1():
from itertools import chain
i_1 = [1, 2]
i_2 = (3, 4, 5, 6)
i_3 = 'a'
i_7 = 'ABC'
i_4 = {'blog': 'zyooooxie', 'qq': '153132336'}
i_5 = [{77, 78, 79}, {88, 89}]
i_6 = {99, 999, 999, 999}
chain_1 = chain(i_2, i_3, i_7, i_1, i_4, i_5, i_6)
Log.info(type(chain_1))
Log.info(list(chain_1))
def test_1_chain():
pass
def test_7():
from itertools import takewhile
list_ = [1, 0, True, False, None, (), (1,), [], [2], '']
abc = takewhile(bool, list_)
Log.info(type(abc))
Log.info(list(abc))
for i in list_:
Log.info(f'结果:{bool(i)}, 元素:{i}')
list_1 = [1, True, (1,), [3], [2], '456']
abc = takewhile(bool, list_1)
Log.info(type(abc))
Log.info(list(abc))
def test_8():
from itertools import dropwhile
list_ = [1, 0, True, False, None, (), (1,), [], [2], '']
abc = dropwhile(bool, list_)
Log.info(type(abc))
Log.info(list(abc))
for i in list_:
Log.info(f'结果:{bool(i)}, 元素:{i}')
list_1 = [1, True, (1,), [3], [2], '456']
abc = dropwhile(bool, list_1)
Log.info(type(abc))
Log.info(list(abc))
def test_3():
from itertools import filterfalse
list_1 = [1, 22, 3333, 4, 55, 666, 77777, 8, 999999]
abc = filter(lambda x: x % 2, list_1)
Log.info(type(abc))
Log.info(list(abc))
abc = filterfalse(lambda x: x % 2, list_1)
Log.info(type(abc))
Log.info(list(abc))
list_1 = ['', 0, 1, 22, (), set(), dict()]
abc = filterfalse(None, list_1)
Log.info(type(abc))
Log.info(list(abc))
def test_6():
from itertools import repeat
from itertools import starmap
zip_ = zip(range(10), repeat(2, 5))
abc = starmap(pow, zip_)
Log.info(type(abc))
Log.info(list(abc))
abc = map(pow, range(10), repeat(3, 15))
Log.info(type(abc))
Log.info(list(abc))
zip_ = (0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1)
abc = starmap(pow, zip_)
Log.info(type(abc))
Log.info(list(abc))
def test_9():
from itertools import islice
list_ = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
abc = islice(list_, 5)
Log.info(type(abc))
Log.info(list(abc))
abc = islice(list_, 3, 30)
Log.info(type(abc))
Log.info(list(abc))
abc = islice(list_, 7, None)
Log.info(type(abc))
Log.info(list(abc))
abc = islice(list_, None, 20, 2)
Log.info(type(abc))
Log.info(list(abc))
def test_10():
from itertools import zip_longest
list_ = [11, 21, 31]
str_ = 'abcd'
list_1 = [12, 22, 32, 42, 52]
str_1 = 'ABCDEF'
list_2 = [13, 23, 33, 43, 53, 63, 73]
abc = zip_longest(list_, list_1, list_2, str_, str_1)
Log.info(type(abc))
Log.info(list(abc))
abc = zip_longest(list_, list_1, str_, str_1, fillvalue='zyooooxie')
Log.info(type(abc))
Log.info(list(abc))
matrix = [[1, 2, 3, 4, 44],
[5, 6, 7, 8],
[9, 10, 11, 12, 12, 12, 12]]
abc1 = list(zip_longest(*matrix))
Log.info(abc1)
def test_4():
from itertools import product
list_ = [1, 2, 3]
tuple_ = ('987', '654')
set_ = {100, 100101}
abc = product(list_, tuple_, set_)
Log.info(type(abc))
Log.info(list(abc))
abc = product(list_, tuple_, repeat=2)
Log.info(type(abc))
Log.info(list(abc))
abc = product(list_, repeat=3)
Log.info(type(abc))
Log.info(list(abc))
abc = product(list_, list_, list_)
Log.info(type(abc))
Log.info(list(abc))
本文链接:https://blog.csdn.net/zyooooxie/article/details/123655926
个人博客 https://blog.csdn.net/zyooooxie
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)