functools.partial 与方法绑定的非直觉行为

functools.partial 与方法绑定的非直觉行为


很多 Python 开发者觉得:


functools.partial


只是:


“提前固定几个参数”


但实际上:


它和 Python 的“方法绑定机制”组合后,会出现很多非常反直觉的行为。


尤其涉及:


实例方法

classmethod

staticmethod

descriptor

self 自动绑定


时。


很多线上 bug 都和这里有关。


一、先理解:Python 方法其实是 descriptor


例如:


class A:

    def test(self, x):

        print(self, x)


当你:


a = A()


a.test


得到的并不是原函数。


而是:


绑定方法(bound method)


Python 自动做了:


partial(A.test, a)


类似的事情。


也就是说:


self 已经提前绑定


了。


二、最经典陷阱:partial 实例方法


很多人这样写:


from functools import partial


class A:

    def test(self, x, y):

        print(x, y)


a = A()


p = partial(a.test, 1)


p(2)


输出:


1 2


这看起来正常。


但真正危险的是:


p = partial(A.test, 1)


p(2, 3)


输出:


2 3


为什么?


因为:


1 被当成 self


了。


也就是说:


partial(A.test, 1)


等价于:


A.test(1, ...)


而不是:


A().test(1, ...)

三、很多人误以为 partial 会“自动绑定 self”


但:


partial 不会触发 descriptor 协议


这是关键。


例如:


A.test


取出来时:


只是函数对象


不是绑定方法。


因此:


partial(A.test, 1)


只是单纯固定第一个参数。


四、bound method 与 unbound function 完全不同


看:


a.test


和:


A.test


差异。


a.test


类型:



它已经携带:


__self__ = a

A.test


类型:



完全没有绑定实例。


五、partial 会“冻结错误的 self”


一个非常隐蔽的问题:


class A:

    def hello(self, name):

        print(self, name)


a1 = A()

a2 = A()


p = partial(a1.hello, "Tom")


此时:


p()


永远使用:


a1


即使:


A.hello


后来被 monkey patch。


或者:


a1


状态变化。


很多框架热更新会踩这个坑。


六、partialmethod 才是真正的方法绑定工具


Python 专门提供:


functools.partialmethod


就是为了解决这个问题。


例如:


from functools import partialmethod


class A:

    def test(self, x, y):

        print(x, y)


    test1 = partialmethod(test, 1)


现在:


a = A()


a.test1(2)


输出:


1 2


并且:


self 会自动绑定

七、为什么 partialmethod 能正常工作


因为:


partialmethod 是 descriptor


而:


partial


不是。


因此:


a.test1


访问时:


Python 会自动:


绑定 self

八、partial 放到类属性里会彻底异常


很多人这样:


class A:

    def test(self, x, y):

        print(x, y)


    p = partial(test, 1)


然后:


a = A()


a.p(2)


会报错:


TypeError


因为:


a.p 不会自动绑定 self


原因:


partial 对象


不是 descriptor。


所以:


实例访问类属性时

不会触发方法绑定机制

九、这是 Python descriptor 的核心细节


函数对象:


function


实现了:


__get__()


所以:


a.test


时:


Python 自动创建:


bound method


而:


partial


没有实现 descriptor。


因此:


a.p


只是普通对象。


十、装饰器 + partial 更容易出事


例如:


def deco(fn):

    return partial(fn, 1)


用于方法:


class A:

    @deco

    def test(self, x):

        print(self, x)


然后:


a.test()


可能直接参数错位。


因为:


self 和 partial 固定参数发生冲突

十一、classmethod 更诡异


例如:


class A:

    @classmethod

    def test(cls, x):

        print(cls, x)


然后:


p = partial(A.test, 1)


p()


输出:


1


因为:


A.test


已经是:


bound method


cls 已经绑定。


但:


partial(A.__dict__['test'], 1)


又完全不同。


因为:


classmethod 对象本身不是函数

十二、partial 会破坏 inspect.signature


例如:


from functools import partial

import inspect


def f(a, b, c):

    pass


p = partial(f, 1)


print(inspect.signature(p))


输出:


(b, c)


但:


一些框架:


FastAPI

Click

Typer

dependency injection


会基于 signature 做分析。


复杂 partial 嵌套后:


参数推导可能异常

十三、pickle 问题


某些 partial:


partial(obj.method)


无法 pickle。


尤其:


multiprocessing

ProcessPoolExecutor


里。


因为:


bound method 可能不可序列化

十四、闭包有时比 partial 更安全


很多情况下:


def wrapper(x):

    return func(1, x)


反而比:


partial(func, 1)


更稳定。


尤其涉及:


方法

descriptor

动态绑定

monkey patch


时。


十五、实战建议

类方法参数预绑定


优先:


partialmethod


而不是:


partial

回调函数


普通函数:


partial


问题不大。


框架开发


要注意:


signature

descriptor

pickle

self 绑定

动态系统


慎用:


partial(obj.method)


因为:


会冻结当前 method 状态

https://vk.com/topic-238939300_64170827 https://vk.com/topic-238939300_64171712 https://vk.com/topic-238939300_64172699 https://vk.com/topic-238939300_64173563 https://vk.com/topic-238939300_64174399 https://vk.com/topic-238939300_64175331 https://vk.com/topic-238939300_64176236 https://vk.com/topic-238939300_64177087 https://vk.com/topic-238939300_64177900 https://vk.com/topic-238939300_64178583 https://vk.com/topic-238939300_64179923 https://vk.com/topic-238939300_64180537 https://vk.com/topic-238939300_64181058 https://vk.com/topic-238939300_64181587 https://vk.com/topic-238939300_64182142 https://vk.com/topic-238939300_64183298 https://vk.com/topic-238939300_64183981 https://vk.com/topic-238939300_64184674 https://vk.com/topic-238939300_64185452 https://vk.com/topic-238939300_64186184 https://vk.com/topic-238939300_64186887 https://vk.com/topic-238939300_64187610 https://vk.com/topic-238939300_64188166 https://vk.com/topic-238939300_64188965 https://vk.com/topic-238939300_64189712 https://vk.com/topic-238939300_64190396 https://vk.com/topic-238939300_64190971 https://vk.com/topic-238939300_64192166 https://vk.com/topic-238939300_64192780 https://vk.com/topic-238939300_64193399 https://vk.com/topic-238939300_64195038 https://vk.com/topic-238939300_64195665 https://vk.com/topic-238939300_64196664 https://vk.com/topic-238939300_64197179 https://vk.com/topic-238939300_64198134 https://vk.com/topic-238939300_64198934 https://vk.com/topic-238939300_64199431 https://vk.com/topic-238939300_64200517 https://vk.com/topic-238939300_64201006 https://vk.com/topic-238939300_64201571 https://vk.com/topic-238939300_64202068 https://vk.com/topic-238939300_64202705 https://vk.com/topic-238939300_64203279 https://vk.com/topic-238939300_64203790 https://vk.com/topic-238939300_64204370 https://vk.com/topic-238939300_64204928 https://vk.com/topic-238939300_64205543 https://vk.com/topic-238939300_64206192 https://vk.com/topic-238939300_64206920 https://vk.com/topic-238939300_64209659 https://vk.com/topic-238939300_64210293 https://vk.com/topic-238939300_64210997 https://vk.com/topic-238939300_64211718 https://vk.com/topic-238939300_64212505 https://vk.com/topic-238939300_64213079 https://vk.com/topic-238939300_64213853 https://vk.com/topic-238939300_64214606 https://vk.com/topic-238939300_64215447 https://vk.com/topic-238939300_64216284 https://vk.com/topic-238939300_64217326 https://vk.com/topic-238939300_64218149 https://vk.com/topic-238939300_64219790 https://vk.com/topic-238939300_64220712 https://vk.com/topic-238939300_64221488 https://vk.com/topic-238939300_64222192 https://vk.com/topic-238939300_64222963 https://vk.com/topic-238939300_64223888 https://vk.com/topic-238939300_64224842 https://vk.com/topic-238939300_64226364 https://vk.com/topic-238939300_64227067 https://vk.com/topic-238939300_64227694 https://vk.com/topic-238939300_64229852 https://vk.com/topic-238939300_64230581 https://vk.com/topic-238939300_64231227 https://vk.com/topic-238939300_64231913 https://vk.com/topic-238939300_64232610 https://vk.com/topic-238939300_64234296 https://vk.com/topic-238939300_64234932 https://vk.com/topic-238939300_64235580 https://vk.com/topic-238939300_64236980 https://vk.com/topic-238939300_64238291 https://vk.com/topic-238939300_64238963 https://vk.com/topic-238939300_64240133 https://vk.com/topic-238939300_64242523 https://vk.com/topic-238939300_64243817 https://vk.com/topic-238939300_64244549 https://vk.com/topic-238939300_64245401 https://vk.com/topic-238939300_64248959 https://vk.com/topic-238939300_64254074 https://vk.com/topic-238939300_64254674 https://vk.com/topic-238939300_64256019 https://vk.com/topic-238939300_64257631 https://vk.com/topic-238939300_64259532 https://vk.com/topic-238939300_64260367 https://vk.com/topic-238939300_64261734 https://vk.com/topic-238939300_64264595 https://vk.com/topic-238939300_64265963 https://vk.com/topic-238939300_64266632 https://vk.com/topic-238939300_64271837 https://vk.com/topic-238939300_64274227 https://vk.com/topic-238939300_64275629 https://vk.com/topic-238939300_64279202 https://vk.com/topic-238939300_64281275 https://vk.com/topic-238939300_64282769 https://vk.com/topic-238939300_64284352 https://vk.com/topic-238939300_64285041 https://vk.com/topic-238939300_64285733 https://vk.com/topic-238939300_64286499 https://vk.com/topic-238939300_64287383 https://vk.com/topic-238939300_64289441 https://vk.com/topic-238939300_64295024 https://vk.com/topic-238939300_64298177 https://vk.com/topic-238939300_64299076 https://vk.com/topic-238939300_64300009 https://vk.com/topic-238939300_64301171 https://vk.com/topic-238939300_64302157 https://vk.com/topic-238939300_64304082 https://vk.com/topic-238939300_64310366 https://vk.com/topic-238939300_64311220 https://vk.com/topic-238939300_64313823 https://vk.com/topic-238939300_64314950 https://vk.com/topic-238939300_64316208 https://vk.com/topic-238939300_64316912 https://vk.com/topic-238939300_64317574 https://vk.com/topic-238939300_64318959 https://vk.com/topic-238939300_64321965 https://vk.com/topic-238939300_64322717 https://vk.com/topic-238939300_64324009 https://vk.com/topic-238939300_64325795 https://vk.com/topic-238939300_64326321 https://vk.com/topic-238939300_64326843 https://vk.com/topic-238939300_64327291 https://vk.com/topic-238939300_64328786 https://vk.com/topic-238939300_64329305 https://vk.com/topic-238939300_64329962 https://vk.com/topic-238939300_64330605 https://vk.com/topic-238939300_64333545 https://vk.com/topic-238939300_64334240 https://vk.com/topic-238939300_64417461 https://vk.com/topic-238939300_64418256 https://vk.com/topic-238939300_64419103 https://vk.com/topic-238939300_64419915 https://vk.com/topic-238939300_64420739 https://vk.com/topic-238939300_64421388 https://vk.com/topic-238939300_64421936 https://vk.com/topic-238939300_64422543 https://vk.com/topic-238939300_64423272 https://vk.com/topic-238939300_64424034 https://vk.com/topic-238939300_64424742 https://vk.com/topic-238939300_64425573 https://vk.com/topic-238939300_64426382 https://vk.com/topic-238939300_64427315 https://vk.com/topic-238939300_64428245 https://vk.com/topic-238939300_64429070 https://vk.com/topic-238939300_64429897 https://vk.com/topic-238939300_64430750 https://vk.com/topic-238939300_64431623 https://vk.com/topic-238939300_64432566 https://vk.com/topic-238939300_64433497 https://vk.com/topic-238939300_64434415 https://vk.com/topic-238939300_64435340 https://vk.com/topic-238939300_64436191 https://vk.com/topic-238939300_64436938 https://vk.com/topic-238939300_64437673 https://vk.com/topic-238939300_64438436 https://vk.com/topic-238939300_64439246 https://vk.com/topic-238939300_64440060 https://vk.com/topic-238939300_64440696 https://vk.com/topic-238939300_64441317 https://vk.com/topic-238939300_64442007 https://vk.com/topic-238939300_64442730 https://vk.com/topic-238939300_64443469 https://vk.com/topic-238939300_64444156 https://vk.com/topic-238939300_64444900 https://vk.com/topic-238939300_64445637 https://vk.com/topic-238939300_64446451 https://vk.com/topic-238939300_64447503 https://vk.com/topic-238939300_64448587 https://vk.com/topic-238939300_64449489 https://vk.com/topic-238939300_64450474 https://vk.com/topic-238939300_64451350 https://vk.com/topic-238939300_64452374 https://vk.com/topic-238939300_64453297 https://vk.com/topic-238939300_64454326 https://vk.com/topic-238939300_64455392 https://vk.com/topic-238939300_64456238 https://vk.com/topic-238939300_64456961 https://vk.com/topic-238939300_64457716 https://vk.com/topic-238939300_64458410 https://vk.com/topic-238939300_64459138 https://vk.com/topic-238939300_64460100 https://vk.com/topic-238939300_64461349 https://vk.com/topic-238939300_64462437 https://vk.com/topic-238939300_64463575 https://vk.com/topic-238939300_64464613 https://vk.com/topic-238939300_64465494 https://vk.com/topic-238939300_64466274 https://vk.com/topic-238939300_64467110 https://vk.com/topic-238939300_64467985 https://vk.com/topic-238939300_64468956 https://vk.com/topic-238939300_64469941 https://vk.com/topic-238939300_64470777 https://vk.com/topic-238939300_64471789 https://vk.com/topic-238939300_64472703 https://vk.com/topic-238939300_64473538 https://vk.com/topic-238939300_64474360 https://vk.com/topic-238939300_64475180 https://vk.com/topic-238939300_64475910 https://vk.com/topic-238939300_64476837 https://vk.com/topic-238939300_64477724 https://vk.com/topic-238939300_64478550 https://vk.com/topic-238939300_64479507 https://vk.com/topic-238939300_64480539 https://vk.com/topic-238939300_64481504 https://vk.com/topic-238939300_64482410 https://vk.com/topic-238939300_64483184 https://vk.com/topic-238939300_64484004 https://vk.com/topic-238939300_64484871 https://vk.com/topic-238939300_64485669 https://vk.com/topic-238939300_64486394 https://vk.com/topic-238939300_64487076 https://vk.com/topic-238939300_64487749 https://vk.com/topic-238939300_64488564 https://vk.com/topic-238939300_64489320 https://vk.com/topic-238939300_64490103 https://vk.com/topic-238939300_64491027 https://vk.com/topic-238939300_64491940 https://vk.com/topic-238939300_64492738 https://vk.com/topic-238939300_64493791 https://vk.com/topic-238939300_64494669 https://vk.com/topic-238939300_64495467 https://vk.com/topic-238939300_64496303 https://vk.com/topic-238939300_64497185 https://vk.com/topic-238939300_64498060 https://vk.com/topic-238939300_64498801 https://vk.com/topic-238939300_64499414 https://vk.com/topic-238939300_64500113 https://vk.com/topic-238939300_64500701 https://vk.com/topic-238939300_64501381 https://vk.com/topic-238939300_64501998 https://vk.com/topic-238939300_64502839 https://vk.com/topic-238939300_64503745 https://vk.com/topic-238939300_64504464 https://vk.com/topic-238939300_64505228 https://vk.com/topic-238939300_64506064 https://vk.com/topic-238939300_64506955 https://vk.com/topic-238939300_64507786 https://vk.com/topic-238939300_64508504 https://vk.com/topic-238939300_64509343 https://vk.com/topic-238939300_64510081 https://vk.com/topic-238939300_64510959 https://vk.com/topic-238939300_64511634 https://vk.com/topic-238939300_64512340 https://vk.com/topic-238939300_64512952 https://vk.com/topic-238939300_64513653 https://vk.com/topic-238939300_64514339 https://vk.com/topic-238939300_64515106 https://vk.com/topic-238939300_64515889 https://vk.com/topic-238939300_64516599 https://vk.com/topic-238939300_64517355 https://vk.com/topic-238939300_64518178 https://vk.com/topic-238939300_64518864 https://vk.com/topic-238939300_64519705 https://vk.com/topic-238939300_64520585 https://vk.com/topic-238939300_64521356 https://vk.com/topic-238939300_64521970 https://vk.com/topic-238939300_64522519 https://vk.com/topic-238939300_64523095 https://vk.com/topic-238939300_64523922 https://vk.com/topic-238939300_64524693 https://vk.com/topic-238939300_64525323 https://vk.com/topic-238939300_64526013 https://vk.com/topic-238939300_64526783 https://vk.com/topic-238939300_64527442 https://vk.com/topic-238939300_64528327 https://vk.com/topic-238939300_64529108 https://vk.com/topic-238939300_64529879 https://vk.com/topic-238939300_64530818 https://vk.com/topic-238939300_64531405 https://vk.com/topic-238939300_64532041 https://vk.com/topic-238939300_64532677 https://vk.com/topic-238939300_64533327 https://vk.com/topic-238939300_64533962 https://vk.com/topic-238939300_64534571 https://vk.com/topic-238939300_64535155 https://vk.com/topic-238939300_64535849 https://vk.com/topic-238939300_64536474 https://vk.com/topic-238939300_64536970 https://vk.com/topic-238939300_64537553 https://vk.com/topic-238939300_64538228 https://vk.com/topic-238939300_64538922 https://vk.com/topic-238939300_64539676 https://vk.com/topic-238939300_64540348 https://vk.com/topic-238939300_64540863 https://vk.com/topic-238939300_64541476 https://vk.com/topic-238939300_64542130 https://vk.com/topic-238939300_64542668 https://vk.com/topic-238939300_64543133 https://vk.com/topic-238939300_64543601 https://vk.com/topic-238939300_64544025 https://vk.com/topic-238939300_64544469 https://vk.com/topic-238939300_64545047 https://vk.com/topic-238939300_64545522 https://vk.com/topic-238939300_64545958 https://vk.com/topic-238939300_64546389 https://vk.com/topic-238939300_64546749 https://vk.com/topic-238939300_64547070 https://vk.com/topic-238939300_64547397 https://vk.com/topic-238939300_64547841 https://vk.com/topic-238939300_64548278 https://vk.com/topic-238939300_64548671 https://vk.com/topic-238939300_64549142 https://vk.com/topic-238939300_64549717 https://vk.com/topic-238939300_64550249 https://vk.com/topic-238939300_64550828 https://vk.com/topic-238939300_64551306 https://vk.com/topic-238939300_64551821 https://vk.com/topic-238939300_64552345 https://vk.com/topic-238939300_64552829 https://vk.com/topic-238939300_64553273 https://vk.com/topic-238939300_64553704 https://vk.com/topic-238939300_64554261 https://vk.com/topic-238939300_64554867 https://vk.com/topic-238939300_64555396 https://vk.com/topic-238939300_64555796 https://vk.com/topic-238939300_64556190 https://vk.com/topic-238939300_64556562 https://vk.com/topic-238939300_64556940 https://vk.com/topic-238939300_64557526 https://vk.com/topic-238939300_64558157 https://vk.com/topic-238939300_64558853 https://vk.com/topic-238939300_64559589 https://vk.com/topic-238939300_64560370 https://vk.com/topic-238939300_64560834 https://vk.com/topic-238939300_64561339 https://vk.com/topic-238939300_64561786 https://vk.com/topic-238939300_64562405 https://vk.com/topic-238939300_64562947 https://vk.com/topic-238939300_64563600 https://vk.com/topic-238939300_64564219 https://vk.com/topic-238939300_64564700 https://vk.com/topic-238939300_64565239 https://vk.com/topic-238939300_64565736 https://vk.com/topic-238939300_64566173 https://vk.com/topic-238939300_64566676 https://vk.com/topic-238939300_64567135 https://vk.com/topic-238939300_64567608 https://vk.com/topic-238939300_64568006 https://vk.com/topic-238939300_64568387 https://vk.com/topic-238939300_64568848 https://vk.com/topic-238939300_64569343 https://vk.com/topic-238939300_64569902 https://vk.com/topic-238939300_64570567 https://vk.com/topic-238939300_64571159 https://vk.com/topic-238939300_64571729 https://vk.com/topic-238939300_64572223 https://vk.com/topic-238939300_64572671 https://vk.com/topic-238939300_64573021 https://vk.com/topic-238939300_64573506 https://vk.com/topic-238939300_64573962 https://vk.com/topic-238939300_64574509 https://vk.com/topic-238939300_64575011 https://vk.com/topic-238939300_64575467 https://vk.com/topic-238939300_64575897 https://vk.com/topic-238939300_64576381 https://vk.com/topic-238939300_64576882 https://vk.com/topic-238939300_64577326 https://vk.com/topic-238939300_64577833 https://vk.com/topic-238939300_64578382 https://vk.com/topic-238939300_64578851 https://vk.com/topic-238939300_64579337 https://vk.com/topic-238939300_64579896 https://vk.com/topic-238939300_64580459 https://vk.com/topic-238939300_64580945 https://vk.com/topic-238939300_64581318 https://vk.com/topic-238939300_64581665 https://vk.com/topic-238939300_64582012 https://vk.com/topic-238939300_64582402 https://vk.com/topic-238939300_64582834 https://vk.com/topic-238939300_64583269 https://vk.com/topic-238939300_64583695 https://vk.com/topic-238939300_64584170 https://vk.com/topic-238939300_64584587 https://vk.com/topic-239052366_63891119 https://vk.com/topic-239052366_63891810 https://vk.com/topic-239052366_63892772 https://vk.com/topic-239052366_63893611 https://vk.com/topic-239052366_63894296 https://vk.com/topic-239052366_63895172 https://vk.com/topic-239052366_63896003 https://vk.com/topic-239052366_63896898 https://vk.com/topic-239052366_63897823 https://vk.com/topic-239052366_63898705 https://vk.com/topic-239052366_63899637 https://vk.com/topic-239052366_63900371 https://vk.com/topic-239052366_63901042 https://vk.com/topic-239052366_63902034 https://vk.com/topic-239052366_63903006 https://vk.com/topic-239052366_63903900 https://vk.com/topic-239052366_63904691 https://vk.com/topic-239052366_63905448 https://vk.com/topic-239052366_63906117 https://vk.com/topic-239052366_63906772 https://vk.com/topic-239052366_63907429 https://vk.com/topic-239052366_63908187 https://vk.com/topic-239052366_63908901 https://vk.com/topic-239052366_63909533 https://vk.com/topic-239052366_63910207 https://vk.com/topic-239052366_63911040 https://vk.com/topic-239052366_63911793 https://vk.com/topic-239052366_63912468 https://vk.com/topic-239052366_63913224 https://vk.com/topic-239052366_63913932 https://vk.com/topic-239052366_63914547 https://vk.com/topic-239052366_63915336 https://vk.com/topic-239052366_63915888 https://vk.com/topic-239052366_63916524 https://vk.com/topic-239052366_63917064 https://vk.com/topic-239052366_63917645 https://vk.com/topic-239052366_63918231 https://vk.com/topic-239052366_63918932 https://vk.com/topic-239052366_63919721 https://vk.com/topic-239052366_63920357 https://vk.com/topic-239052366_63920948 https://vk.com/topic-239052366_63921651 https://vk.com/topic-239052366_63922443 https://vk.com/topic-239052366_63923122 https://vk.com/topic-239052366_63923676 https://vk.com/topic-239052366_63924226 https://vk.com/topic-239052366_63924821 https://vk.com/topic-239052366_63925582 https://vk.com/topic-239052366_63926479 https://vk.com/topic-239052366_63927400 https://vk.com/topic-239052366_63928205 https://vk.com/topic-239052366_63929045 https://vk.com/topic-239052366_63929767 https://vk.com/topic-239052366_63930468 https://vk.com/topic-239052366_63931244 https://vk.com/topic-239052366_63931977 https://vk.com/topic-239052366_63932627 https://vk.com/topic-239052366_63933291 https://vk.com/topic-239052366_63933892 https://vk.com/topic-239052366_63934360 https://vk.com/topic-239052366_63934866 https://vk.com/topic-239052366_63935540 https://vk.com/topic-239052366_63936128 https://vk.com/topic-239052366_63936763 https://vk.com/topic-239052366_63937498 https://vk.com/topic-239052366_63938289 https://vk.com/topic-239052366_63939100 https://vk.com/topic-239052366_63939823 https://vk.com/topic-239052366_63940483 https://vk.com/topic-239052366_63941145 https://vk.com/topic-239052366_63941777 https://vk.com/topic-239052366_63942245 https://vk.com/topic-239052366_63942754 https://vk.com/topic-239052366_63943210 https://vk.com/topic-239052366_63943784 https://vk.com/topic-239052366_63944391 https://vk.com/topic-239052366_63944987 https://vk.com/topic-239052366_63945694 https://vk.com/topic-239052366_63946245 https://vk.com/topic-239052366_63947873 https://vk.com/topic-239052366_63948364 https://vk.com/topic-239052366_63948880 https://vk.com/topic-239052366_63949536 https://vk.com/topic-239052366_63950155 https://vk.com/topic-239052366_63950867 https://vk.com/topic-239052366_63951579 https://vk.com/topic-239052366_63952309 https://vk.com/topic-239052366_63952983 https://vk.com/topic-239052366_63953740 https://vk.com/topic-239052366_63954506 https://vk.com/topic-239052366_63955119 https://vk.com/topic-239052366_63955686 https://vk.com/topic-239052366_63956291 https://vk.com/topic-239052366_63956818 https://vk.com/topic-239052366_63957651 https://vk.com/topic-239052366_63958346 https://vk.com/topic-239052366_63959129 https://vk.com/topic-239052366_63959871 https://vk.com/topic-239052366_63960614 https://vk.com/topic-239052366_63961522 https://vk.com/topic-239052366_63962712 https://vk.com/topic-239052366_63963965 https://vk.com/topic-239052366_63965186 https://vk.com/topic-239052366_63966368 https://vk.com/topic-239052366_63967245 https://vk.com/topic-239052366_63968081 https://vk.com/topic-239052366_63968763 https://vk.com/topic-239052366_63969624 https://vk.com/topic-239052366_63970438 https://vk.com/topic-239052366_63971210 https://vk.com/topic-239052366_63971803 https://vk.com/topic-239052366_63972301 https://vk.com/topic-239052366_63972931 https://vk.com/topic-239052366_63973578 https://vk.com/topic-239052366_63974206 https://vk.com/topic-239052366_63974953 https://vk.com/topic-239052366_63975704 https://vk.com/topic-239052366_63976316 https://vk.com/topic-239052366_63976932 https://vk.com/topic-239052366_63977467 https://vk.com/topic-239052366_63977988 https://vk.com/topic-239052366_63978543 https://vk.com/topic-239052366_63979133 https://vk.com/topic-239052366_63979806

请使用浏览器的分享功能分享到微信等