上海疫情,让我们见识真正的“阴谋论”

近期,上海的疫情牵动着所有国人的心,在严密防控的背景下,奥密克戎病毒在中国最大城市的迅速传播令人感到诧异,这里面存在着诸多疑点可供推敲,本文试图从外部环境与内部防范的角度来梳理真相。
事先声明一下,这篇文章是写给那些有独立思考能力、能够做出理性判断、不会轻易被情绪所左右的那些人的。那些有先入为主的偏见、喜欢人云亦云的人可以及早离开,因为接下来的文章并不会简单地附和官方的立场,也不会为了赚取流量去迎合大众,而是笔者根据在上海封控期时亲身经历的所见所闻进行的整理,欢迎大家斧正。
上海疫情,让我们见识真正的“阴谋论” 
新冠疫情发展到今天,美国作为始作俑者的线索越来越多的浮出了水面,美国在全球各个地区所建的200多个生物研究所的嫌疑很大。越来越多的人将疫情归结于某种阴谋,但我想说的是,真正的阴谋往往不可能为广大人民所推知,只有极少数的聪明人能够察觉。
于新冠病毒,我们还是把它想简单了,真正的阴谋策划者不仅仅会发明病毒,而且会想办法传播病毒,更会借病毒来扰乱大局。他们会想尽各种办法毁灭证据,切断一切明显的线索,导致我们只能从一些支离破碎的信息来梳理事情的脉络。真正的阴谋并不易直接被观察到,它有可能缺乏实锤的证据,但在全面的分析与研判之下,真相往往就如拼图游戏一般地显现出来了。因此,官媒无法正式报导,国家也不能公开反击对手。
上海疫情,让我们见识真正的“阴谋论”
按“阴谋论”,新冠疫情可以看成由美国发起的一场针对中国的“生化战”,这是一场立体的入侵,对方并不是毫无章法地随处放毒,而是有组织、有策略、有步骤地推进,就像陆、海、空军联合作战。病毒(空军)最先通过空中航线空投到武汉,随后(海军)通过海路在各沿海港口、物流中心、海关等处全面输送,最后通过(陆军)在上海等各大城市登陆。
我们分析新冠疫情在中国的爆发,不能够脱离生化战的背景,不能仅从流行病学的角度去分析过程,而是要从美国对中国发动整体生化战的角度来梳理事件的整个脉络。
上海疫情,让我们见识真正的“阴谋论”
就目前来看,大部分国人对上海疫情的爆发还是归结于最初华亭宾馆的封控不力,其实这不过是众多自媒体营造出的一种幻象,或者说一种托辞。很多反华势力的代理人隐藏在各路自媒体中,避重就轻、声东击西,为的就是要消解掉“阴谋论”,隐藏美国对中国发动生化战的事实。通过麻痹国人,让中国主动撤防,从而让美国在这场隐蔽战争中更加快速地攻城略地,获得更大的战果。
事实上,上海疫情的突破口绝不仅仅是一个华亭宾馆,而是在人为的操纵下,选择大量的突破口同时攻击的结果,因此靠常规的防疫流程根本阻挡不了。大家近期可以看到,很多小区多了巡逻警察在调查团购食物来源,同时上海官方媒体密集地宣传外购物资的消杀要点,可以推论上海的病毒来源绝不是自然传播这么简单。
上海疫情,让我们见识真正的“阴谋论”
航班、物流、冷链、代购、人员往来、生产制造、商务活动等等环节都会轻易地被病毒所突破,现在连蔬菜和快递中都发现了病毒,这相当于我们在明处而敌人在暗处,完全防不胜防。众所周知,一个城市的主要安保力量依靠的是警察,在正常情况下,警方尽心尽责的履职,即能保障城市的平安,但如果大量的敌人乔装打扮混迹在城市当中,在同一时间从各个关口发动攻击,那么警方的力量就是再强也根本不可能抵挡得住。
新冠病毒在上海的传播目前就呈现出上述态势,对此,上海市政府经过几轮的流调已经有所察觉,也做了针对性的部署和应对,但是请记住,这是一场全球唯一超级大国美国发动的针对中国的生化战,仅仅依靠上海本地的力量怎么可能挡得住?要知道上海仅仅是一个突破口,最终还是要依靠举国之力来全力应对。
上海疫情,让我们见识真正的“阴谋论”
前两天网上有一篇热文,叙述了一位美籍华人律师在感染新冠病毒后辗转回国的历程,作者在回国之前就已确诊,而且还存在治愈后返阳的现象,这篇文章可以令我们管中窥豹,从侧面推知美国究竟派了多少病毒感染者来到中国,又有多少人通过春节省亲的环节,将病毒传播到了上海各地。在这样的全面进攻态势下,依靠上海本地的力量是不可能防得住的。
跟疫情同步升温的,是网络间的舆情。在上海各界奋力抗疫的同时,网络上突然出现了大量负面性的信息。很多文章都在批评官方的应对措施,还有人直接否定了中国政府的抗疫方针,并要求放开封控。这不能不令人生疑:在最需要凝聚人心的时候,是谁在刻意分化大众?是谁在公开跟官方唱反调?是谁在鼓吹躺平,极力把中国的抗疫方向引向欧美已经被事实验证失败的模式?答案不言而喻。我们从这些事例可以看出,美国对中国发动的不止是“生化战”还有“舆论战”,现在各种迹象已经越来越明显。
上海疫情,让我们见识真正的“阴谋论”
 试图操控舆论的网文所采用的套路大多是放大负面效应、制造内部矛盾的手法,以为民请命的姿态来挑拨官民对立,意在否定中国政府对抗疫所做出的种种努力,达到分化削弱中国的目的。
而最重要的两点问题,这些反华媒体却从不提起: 

 

  1.  奥密克戎病毒的危害性,这需要若干年的科学数据累积才能判断到底有没有后遗症。怎么可能通过几个痊愈患者的采访,就断定没有问题,就定义为无害的大号流感?美国专家的研究报告都说病毒会入侵脑神经,从而造成可能的后遗症。
  2. 谁能保证新冠病毒的演化只会越来越弱?后续如果出现更厉害的病毒混在已有的病毒里一起传染,如何应对?就像两年前专家们都说疫苗出来了,疫情就结束了,但结果呢?
上海疫情,让我们见识真正的“阴谋论”
所以你会看到网上很多关于上海抗疫的文章都是激起民愤的负面信息,一会是老百姓买不到菜,一会是老父亲就不了医,今天宠物狗被不人道对待了,明天又是名校毕业生死于新冠,甚至拿4年前疫苗事件的官方讲话剪辑成最新消息。
舆论战的另一个战场就是对中医的抹黑,世界卫生组织都已经发布:中医药能有效治疗新冠肺炎。但在当前,却还有不少媒体和网红在诋毁中医药,中医药是我国对抗美国生化战的绝佳武器,这些反华媒体想方设法让中医药“解甲归田”,以便顺利推进这场生化战。
上海疫情,让我们见识真正的“阴谋论”
从目前的情况来看,关于上海抗疫的负面信息越来越多,尤其在短视频直播等平台,很多博主或出于挑拨矛盾、或出于炒作流量,大肆传播这些负面信息,这不能不令人引起警觉。虽说上海警方已经出手打击了一些谣言散布者,但是负面舆情持续发酵的态势仍然没有得到根本扭转。关于这一点,我们首先要明确一个方向,很多人有组织、有预谋地散布不当言论,绝不仅仅是扰乱社会秩序这么简单,我们一定要清楚地认识到,这是一场针对中国的战争!我们的对手选择病毒为突破口发动了生化战,同时还结合了舆论战、金融战、科技战,这是一场民族复兴之路上无法避免的总体战。仅仅局限在疫情防控的角度,以局部治理的思维来应对总体战,显然是过于轻敌了。 
上海疫情,让我们见识真正的“阴谋论”
这些负面文章的作者深谙炒作之道,制造的话题都颇能挑动人们敏感脆弱的神经。在疫情封控措施日益收紧、广大群众的耐心和信心都较为脆弱的时刻,狠狠带了一把节奏,收获了一波流量。大家在品读这些10万+的热文时,往往会出于人性的善良,本能地去共情那些有着不幸遭遇的人,却不知不觉就被带入了和政府对立的立场。
在这些作者的笔下,政府的积极抗疫就是专制,就是不顾民生。封控中的上海民不聊生,百业萧条,不仅商业活动完全停滞,而且百姓的基本生活都难以保证。其实,作为疫情风暴中心的一员,笔者非常清楚这些爽文的作者完全是在夸大其词,当然,作为2300万人口的城市发生“生化战”必定会有伤亡的发生,我们应该对牺牲者表达关切与援助,但不应该借此挑起民愤,激化矛盾。上海作为中国行政效率最高的城市,都被自媒体黑成了这样,其他城市的情况就可想而知了。在“生化战”加“舆论战”的双重打击下,广大国民对于政府的信心能否一直保持?汹涌的舆情如果一直发酵,是否会最终影响政局的稳定?目前,危险正在步步逼近!
上海疫情,让我们见识真正的“阴谋论”
 对于处在抗疫关键期的中国而言,舆论攻势造成的更大威胁还在于其后发性。一旦经济压力达到峰值或社会矛盾变得不可调和时,社会群体便极易产生严重的政治焦虑,同时丧失独立思考和判断问题的能力,陷入集体无意识状态,进入无法辨识谎言的后真相时代。那时,便是海外反华舆论宣传趁虚而入,诱导群体情绪走向极端同质化的最好时机。
我们并不否认抗疫过程中存在不足,事实上有大量的细节值得我们在事后进行仔细总结,但在疫情当前的严峻形势下,我们需要更多的是理解和鼓励。不要忘了,这是一场战争,一场看不见敌人的战争!无论是官方还是民间,都在进行总动员,力求以最小的代价来保护广大人民的生命健康安全。
上海疫情,让我们见识真正的“阴谋论”
中国严格防疫的管控措施已经被反复证明是阻断病毒传播的利器,各大城市已经加速建造方舱医院,再结合中医药治疗重症与防疫,我们可以做到动态清零,就算奥密克戎病毒的传播性再强,中国历史上无数次的瘟疫我们就是使用中医药防治的,最终实现了病毒清零。
从中国政府下定决心以举国之力来抗疫的那一刻起,就表明了这是一个完全不同于西方的负责任政府。我们当然知道躺平是最容易的,政府几乎不需要做什么,只需要撇清自身的责任即可。但中国政府却迎难而上,选择了一条最容易被非议且难度极大的抗疫之路。虽然代价巨大、道阻且长,但好处就是避免了成千上万人的死亡和后遗症。
上海疫情,让我们见识真正的“阴谋论”
我们不能因为悲剧没有发生,就否定为制止悲剧而做出的所有努力。这是一场全民参与的战争,很多时候我们都处于一种“准战时”状态下,对那些借防控不力来制造民怨的伎俩,广大国民要保持足够的警惕之心。
我们的国家承平日久,很多人都对战争缺乏概念,但是我们仍然可以从当今世界的一些热点冲突地区以及相关影视作品中,来管中窥豹般了解战争的残酷。在真正的战时状态下,不要说吃不上青菜、无法遛狗这些琐碎的事情,连保障最基本的饮水、口粮都无比艰难。现在,国家在各个疫情爆发地区已经进行了总动员,各方人士都在进行积极的抗疫。我们作为百姓,心态也需要进行调整,要以同仇敌忾的勇气来应对敌人的总体战。对政府要多一份理解,对抗疫的措施要多一些宽容。至少我们绝大部分人的人身安全都是有保证的,这已经比直面惨烈的流血战争要好很多了。
上海疫情,让我们见识真正的“阴谋论”
如果这篇“阴谋论”成立,上海封控就是一场保卫战,在战争中受伤害的人们不应该责怪保护我们的军队和政府。如果一定要批评政府,那就是还有许多官员没有认识到这是一场战争,他们仍旧以疫情防控的优雅心态在对待。
当下中国进行的这场抗疫战争,绝不仅仅是单纯一国卫生领域的事情,背后也有大国博弈的影子。上海的确诊人数之所以如此突然的暴增,跟目前正在进行的俄乌冲突也不无关系。由于中国跟俄罗斯建有全面战略协作伙伴关系,也是事实上俄罗斯最大的盟国,早已被美国等西方国家视为眼中钉,肉中刺。所以我们看到俄乌战争刚刚爆发之时,美国立即在台海地区有所动作,穿越航行和抵近侦察一波接着一波。同时,美国利用新冠生化战来制约中国,以减轻中国对俄罗斯的支援力度。疫情是美国的一个抓手,背后体现的则是大国间的对抗与博弈。
上海疫情,让我们见识真正的“阴谋论”
上海目前可以算作中国抗疫的最前线,很多人在这场生化战役中暴露出了真实的立场和身份。这其中,有众多无私奉献、迎难而上的人;也有一些浑水摸鱼、发国难财的人;更有一些煽风点火、唯恐天下不乱的人。我们相信,作为中国最大城市的政府官员们,也一定在边抗疫边调查,试图摸清这些人的底细,分析得失、总结经验,以期赢得未来可能持续升级的生化战和舆论战。
最后说一句,作为一名生活在封控区且亲身参与了抗疫工作的志愿者,我想诚恳地呼吁一下那些批评政府的人:在你决定发声之前,请先摸一摸自己的良心,有没有享受过抗疫的成果?有没有接受过众人的帮助?有没有哪怕花半天的时间去做一名志愿者?如果没有,那就算不想伸出援助之手,至少也可以做一名安静守法的公民,不对政府抹黑,不给社会添乱。
上海疫情,让我们见识真正的“阴谋论”
在封控期的闲暇时间,建议大家可以多看一些战争电影,了解一下一旦国家走向了动荡和分裂,后果是怎样的。一个大国的崛起,不仅仅是政治、经济、军事等综合国力的提升,也包含着国民素质的提升。如果大部分国民都是人云亦云的低能儿,特别轻易地就被洗脑,那这个国家必然会走向衰败。相反,如果大部分国民都具备独立思考能力,充满了智慧和理性,那这个国家想不走向强盛也难。 
上海疫情,让我们见识真正的“阴谋论”
高素质的国民是中国走向复兴之路上不可或缺的一环,我们相信,广大国人将伴随着国家的前进同步成长,变得更加包容、更加理性,将会在一次次应对敌人生化战和舆论战的过程中展现出从容不迫的智慧担当,这是我们喊出多难兴邦的底气,也是这个古老民族最终走向复兴的根本保证。

转自:https://mp.weixin.qq.com/s/u2GN_MVfsBl2skCYaD9O0A

读书日|16本顶级投资人的推荐书单,值得收藏!

明天是一年一度读书日,聪投的书单如约而至。芒格说:“如果你想有所成就,就用生命的大半时间去阅读。
芒格是一个如饥似渴的读书人,他的房间里、床上、椅子上到处是书,但他并不是一个小说迷,他喜欢以事实为基础的,比如商业、传记、历史或者科技……
 
他说:“我对自己为什么要搜集这些信息十分清晰。在开始之前就想好要了解哪些事实,然后去判断所看到的数据是否符合基本概念。
 
大量有目的的阅读可以让人在潜意识里养成一种习惯,把读到的东西和基本概念联系起来,逐渐就会累积起有关投资的智慧。
聪投每次采访投资人时,都会让他们给大家推荐几本。限于篇幅,今天我们将分两部分给大家推荐:
 
   1、最新出版的值得阅读的
   2、被多位投资人一致推荐的
 
这些书,有的和投资相关,有的是社科、历史等不同领域的著作,无论如何,它们都曾经让一个专业投资人有所触动,有所启发。先来瞥一眼书单目录
最新出版的新书:
· 《投资中国》
· 《逆向投资》
· 《财富是认知的变现》
· 《影响力》
· 《枪炮、病菌与钢铁:人类社会的命运》
适合一再重温的经典之作:
· 《长线》
· 《原则》
· 《大钱细思》
· 《股票大作手回忆录》
· 《巴菲特致股东信》
投资人都在看的跨界书籍:
· 《人类简史》
· 《凯撒宫政变》
· 《经济学原理》
· 《三体》
· 《思考快与慢》
· 《自私的基因》
看到这里你可以手动复制到自己的收藏文本了 🙃
 
今天的书单,类似《穷查理宝典》《证券分析》《聪明的投资者》《查理·芒格传》《滚雪球》《共同基金常识》《漫步华尔街》《文明、现代化、价值投资与中国》……等经典之作,估计大家已经基本人手一本,本文不再单独介绍。
读书日|16本顶级投资人的推荐书单,值得收藏!
  01 最 新 出 版 的 新 书  
读书日|16本顶级投资人的推荐书单,值得收藏!
 
《投资中国》
王国斌 著
出版时间:2022年2月
湛庐文化/北京联合出版公司
“企业家型投资人”王国斌作为一个曾去“读书游学”的投资人,王国斌对古文学和哲学颇有研究,身上也带着一种儒雅与质朴之感。他热爱阅读,坚信价值投资是一套完整的哲学体系。
 
在他的首部力作《投资中国》一书中,不仅全面收录了他近30年金融证券投资从业经验积淀而成的投资札记,自序中还列出了他最爱的71本书,这份私人图书馆完整呈现了王国斌过往的阅读体系。
读书日|16本顶级投资人的推荐书单,值得收藏!
 
《逆向投资:邓普顿的长赢投资法》
劳伦·C.邓普顿 斯科特·菲利普斯 著
出版时间:2022年4月
本书紧紧围绕着“如何选择最佳便宜股”展开,由邓普顿侄孙女及侄孙女婿所著,文中无处不闪烁着这位睿智老人的投资智慧。邓普顿在序言里说道:
 
“我的侄孙女劳伦·邓普顿和她丈夫斯科特·菲利普斯在书中描述了便宜货猎手的投资心理。虽然可用的投资方法众多,但让我获得巨大成功的方法却是,购买价格远远低于其内在价值的股票。
 
我的整个投资生涯就是在世界范围内搜寻能够买到的最佳低价股。研究显示,将投资分散到世界各地的股票组合,从长期来看,比单纯投资到单一国家的多样化股票组合波动更小,回报率更高。”
读书日|16本顶级投资人的推荐书单,值得收藏!
 
《财富是认知的变现》
舒泰峰 著
 2022年1月
湛庐文化出品
 
重阳投资合伙人舒泰峰对最核心的一些投资认知原则条分缕析,形成一个带有跨界特色的认知系统。应对投资者的12个常见认知误区,本书给出了12个破解之道,帮助读者有效避开投资中的陷阱。
 
 推荐人:
 
重阳投资创始人裘国根、中泰证券李迅雷……

 

 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
《影响力(全新升级版)》
作者:罗伯特·西奥迪尼
出版时间:2021年11月
湛庐文化/北京联合出版公司
 
《影响力》算得上是社会心理学之冠。心理学家罗伯特·西奥迪尼为我们解释了隐藏在冲动地顺从他人行为背后的心理武器。
 
这本为它的全新升级版,6大武器升级为7大武器,新增了50个新商业案例和点评。
 
 推荐人:
 
中泰资管基金业务部总经理姜诚:心理学应用方面推荐西奥迪尼的《影响力》和朱迪斯.哈里斯的《教养的迷思》。
 
芒格看完后赠送作者一股伯克希尔-哈撒韦股票(约200w人民币)。
 
其他推荐人:丹尼尔·卡尼曼、盖伊·川崎、汤姆·彼得斯……
读书日|16本顶级投资人的推荐书单,值得收藏!
《枪炮、病菌与钢铁:人类社会的命运》
Guns, Germs, and Steel: The Fates of Human Societies
作者:[美]贾雷德·戴蒙德
出版时间:2022年1月
出版社:中信出版集团
贾雷德·戴蒙德的《枪炮、病菌与钢铁》被称为人类大历史的开山之作,被投资人奉为解读人类社会命运的必经典,一经上市,旋即引起各界激烈争论。
 
2022开年,这本经典全面增补,译文再校订。它的颠覆性不言而喻,现代西方社会引以为傲的文明先发优势,在这本书中竟被归因于环境和地理的深刻影响……
 
 推荐人:
芒格、比尔·盖茨、李录、杨东、俞敏洪、梁文道、尹烨、郝景芳……
  02 适 合 一 再 翻 看 的 经 典 之 作  
 
读书日|16本顶级投资人的推荐书单,值得收藏!
《长线》,查尔斯·埃利斯,中信出版社
 
 推荐人:
 
睿远基金陈光明曾和聪投交流时,提到了美国资本集团,也很推崇《长线》:
 
“美国资本集团(CapitalGroup)做得比较好。早年还没有看到《长线》那本书,我就是这么想,也是这么做的。
 
后来忽然看到这本书,发现跟我的想法很接近,而且这么做还做得这么成功,所以我就翻来覆去翻了很多遍,在我们内部兴起了学习capital。”
 
信璞投资合伙人归江:“在市场创新迭出、人情轩昂的时候,在考核和风险控制机制永远难以追及人性贪婪的时候,只有朴素的价值标准和道德标准才是控制风险、成就事业的最后屏障。”
读书日|16本顶级投资人的推荐书单,值得收藏!
 推荐人:
巴菲特大力推荐《投资最重要的事》,说他读了两遍,评价本书:“This is that rarity, a useful book.”
 
弘尚资产张骏给投资者推荐的《投资最重要的事》、《周期》,在他看来,这两本书比较适合普通投资者,道理也比较容易懂。
 
国泰基金程洲:“《投资最重要的事》那本书里面写的东西,我基本上90%认同,没做过投资,你看就没感受,做过你再看,会有认同感……”
 
银华基金贾鹏曾给聪投推荐了三本书:第一本是橡树资本马克斯写的《投资中最重要的事》;第二本书是《被讨厌的勇气》,这是很著名的积极主义心理学书籍;第三本书是《二十一世纪资本论》,贾鹏说,这本书让他认识到工作的意义。
 
海通证券荀玉根:《周期》是霍华德·马克斯继《投资最重要的事》后的第二本书,本书告诉我们如何认识周期、分析周期、应对周期,霍华德用深入浅出的文字告诉我们如何掌握投资周期。
 
上投摩根孙芳:推荐《投资中最重要的事》……想创造超越平均的投资收益,就要具备超越平均水平的认知,运用“第二思维”思考和评估。建立对市场、风险和自我的认识,不盲从,了解并相信投资对象的长期价值,是投资中最重要的事。
 
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
“原则”是全球最大对冲基金桥水基金创始人达利欧总结成功的一套法则。
 推荐人:
世诚投资创始人陈家琳:“《原则》一书罗列了数百条原则,皆为达利欧从十数年生活工作经历中总结出来的真知灼见。我作为行业内的后辈,读来真是豁然开朗、受益匪浅。
 
《原则》的正确“打开”方式,是不要盲目遵循书中的那些原则,而要真正理解原则背后的逻辑,形成、拥有、实践真正属于自己的原则。”
 
菁英时代投资董事长陈宏超:“在我们的日常生活和工作中往往容易忽略原则的遵循指导,经常是无序和混乱使我们无所适从。对于投资来说,尤其如此。
 
书中力陈:持续地追求学习和改进的动力,让我们天生的对进步感到快乐,对快乐进步感到兴奋。成功就是以尽可能高效的方式拼搏和进化,通过改变实现进步。”
 
中庚基金首席投资官丘栋荣:“达利欧的《原则》,可以当做教科书来学习。”
 
 
读书日|16本顶级投资人的推荐书单,值得收藏!
富达基金的创立者乔尔蒂林哈斯特(Joel Tillinghast)常被投资界称为“T神”,被认为是主动管理型基金经理的榜样。
 
蒂林哈斯特在书中总结了多年来应对资本市场不确定性,穿越周期获得长期投资的成功经验。
 推荐人:
 
彼得·林奇认为《大钱细思》“是寻找10倍股的利器”。蒂林哈斯特凭借30多年来在长期价值投资的精准判断,被彼得林奇称作投资界“最会翻石头的人”。
睿郡资产董承非:“很多时候我们看到(很多人)从研究员的思路上进行价值评估,实际上没有人一个人站在非常有经验的大师级人物的角度进行分析。
 
所以当我翻到《大钱细思》这本书的时候感觉非常幸运,如获珍宝,在我看来这是一份重要的研究报告,真实代表了他作为一个买方在思考投资时做价值评价的思维过程,并用案例展示出来。
易方达基金萧楠:(《大钱细思》是)实操性很强的一本书。真正的“安全边际”,是基于对公司内在价值的深度研究。太多人过于关注变化,而忽视了比变化更重要的内在价值。
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
利弗莫尔是股票历史上不可忽略的传奇:
 
1877年,出生于一个美国农场;1891年,与人凑了5美元买股票;1892年,赚到一千美元;1898年,赚到一万美元;1901年,做多北太平洋公司一天赚4万美元;1906年,做空联合太平洋,赚到一百万美元;1907年,回补空头,一天赚300万美元……
 
利弗莫尔的智慧和技术影响了三代股票大师,彼得·林奇、巴菲特、索罗斯、格雷厄姆等无不对他盛赞有加,公开承认深受他的故事和智慧的影响。
 推荐人:
 
海通证券荀玉根:“……我推荐《股票大作手回忆录》、《杰西利弗莫尔疯狂的一生》、《期货大作手风云录》;
 
摘录几句经典:“赚钱不是靠怎么想,而是坐下来等”,“永远别和纸带争对错”,“华尔街没有新鲜事,因为人性不变”,“会开仓的是徒弟,会平仓的是师傅,会空仓的是大师”,“人生的幸福指数是个立方体。”
其他推荐人:李录……
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
 推荐人:
易方达基金张坤:“投资的风格和思想的打磨是一个渐进的过程,它没有说在某个时时刻发生一个跳变。
 
我在毕业之前,我就读过伯克希尔的致股东信,但是那个时候读没有太多的感觉,我工作做了一段时间的研究员之后再读,就会有很多的新体会。
 
包括做投资之后再读,因为反反复复读了很多遍,确实是每一次读都会有新的体会,也慢慢地通过投资有些股票盈利了,有些股票最后没有兑现,去反思自己哪里做错了。
 
再回头去想,如果在类似的情景上,投资大师们会怎么去想这个问题,再去反求诸己,这是一个逐步形成的过程。
 
而且,至少应该有10年的时间,才能真正意义上去评估投资人,我严格意义上也没有到10年的时间。
 
投资这个行业就是这样,就像芒格讲的,你跟一个40岁以下的人去聊天,收获可能会比较少,它是一个靠时间去慢慢磨,慢慢在市场里面积累。”
 
 
  03  投 资 人 都 在 看 的 跨 界 书 籍  
 
芒格认为,只有单一学科思维的人,就像只有一把锤子的人。而就像那句著名的谚语说的,对只有一把锤子的人来说,任何问题看起来都很像钉子。
 
单一学科思维的人具有很大局限性。所以芒格推崇跨学科思维:
 
“我从物理学家那里学会了通过寻找最简单、最直接的答案来解决问题。最容易的方法永远都是最好的方法。我又从数学家那里学会了将问题倒过来看,或者从反面去看,反转,再反转。
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
以色列学尤瓦拉·赫拉利全球瞩目的新锐历史学家。这是一部宏大的人类简史,讲述从十万年前有生命迹象开始到21世纪资本、科技交织的人类发展史,更见微知著、以小写大,让人类重新审视自己。
 
 推荐人:
 
富汇财富创始人王鸿嫔:“这些西方学者的论述,跟东方的夫子们路数完全不同,竟然可以纯然地抽离家国、民族、人为万物主宰的思维,让人感觉开了一扇新的窗,原来可以这么样思考事物,套句现代流行语,这是”脑洞大开”吧!
 
原汇添富基金副总经理林军:“这是此类大历史中最好的一本:规模宏大但绝非泛泛而谈;具有时代性又不花哨,观念惊世骇俗但绝不是个简单的反对者。
 
这本书涵盖了生物学,人类学,哲学,心理学,艺术,文学,伦理学等众多领域。也涉及幸福,生命的意义等众多话题,将个体的幸福放在人类发展的过程中审视。”
 
 
读书日|16本顶级投资人的推荐书单,值得收藏!
《凯撒宫政变》
 
 推荐人:
 
《凯撒宫政变》是前几天伯克希尔2022年会书单中,芒格唯一推荐的一本;橡树资本初在年度书单中也提到了。
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 
 推荐人:
 
景顺长城杨锐文在接受聪投采访时,表示自己在德国学习期间,晚上没事就看各种财经书籍。
 
他觉得曼昆的《经济学原理》对他影响很大,因为特别通俗易懂,那时候的他,就开始自己写一些对宏观的想法。
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 推荐人:
 
王国斌在自己的新作《投资中国》自序中推荐了本书。
橡树资本2022年书单透露,橡树资本高层也在看《三体》。
 
读书日|16本顶级投资人的推荐书单,值得收藏!
 推荐人:
 
少数派创始人周良在多个公开场合下推荐过《思考快与慢》:“我们有几本是必读的,比如《思考快与慢》,还有一本书叫《行为投资学手册》。”
 
《思考快与慢》作者是诺贝尔经济学奖获得者丹尼尔·卡尼曼。他是个心理学家,结果拿了一个经济学的奖,这本书也是行为经济学领域的经典书籍,里面讲到人有两种思维模式,一种叫快思维,一种叫慢思维。
 
周良说:“我们日常生活中,大部分人用的都是快思维,它是直觉的,感性的……
 
慢思维很耗费脑力,时间很长,但最大的特点是准确,时间长了,可验证的多了,你判断人才不会出错,也是我们常说的,日久见人心。
 
所以快思维效率高,容易犯错,慢思维效率很低,但是准确率很高。
 
我们就是要用更加准确的慢思维去找到大部分人快思维犯错的地方,这才是我们的投资方法。所以它是非常独特的,是很少数派的。”
 
其他推荐人:李录、混沌投资创始人葛卫东、交银施罗德基金何帅……
读书日|16本顶级投资人的推荐书单,值得收藏!
 推荐人:
中泰资管姜诚:我个人最感兴趣的是生物进化和自然选择方面的书,首推道金斯的《自私的基因》。该书的出名在于其揭示了生物进化最基本的自然选择单位是基因,而不是单个生物体,更不是一个物种群体。
 
道金斯也提出了进化的最基本规则,那就是基因的复制,而不是生物自身的福利,因此他称基因是自私的。
 
其他推荐人:杨东、李录……
 
 

转自:https://mp.weixin.qq.com/s/8_jqJYzajpwrh-T2gpvB_A

某市1072家疫情保供企业大数据分析暨颁奖典礼

某市商务委员会刚刚发了个网站(阅读原文),一共列出了1072个保供企业,而且只能用手机看,这哪看得过来?作为IT男,我导出了所有保供企业的清单,并且逐一匹配了这些企业的工商信息,给大家做一个大数据分析,并且冒昧的给这些企业颁个奖。

在这1072家企业中,参加社保的总人数为48529人,当然这只能作为参考,因为大型集团公司的可用人力,会远高于社保参保人数。

在1072个保供企业中,我们发现了非常可喜的现象,某市并不是任由巨型企业垄断的,还有一部分小微企业上榜。其中注册资金小于100万,但实缴资本为0元的企业,一共有57家,其中餐饮企业25家,超市企业15家,电商平台3家(这点钱做不起来电商),副食品7家,药品2家,物流总部3家,外资企业1家。

注册资金、实缴资本均小于100万的企业一共92家,约占某市保供企业总数的9%,他们的注册资金总数为6754万元,实缴资本5724万元,参保人数4456人。

参保人数低于3人的企业,一共130家,占某市保供企业总数的12%,他们的注册资金总数390亿,实缴资本335亿,参保人数40人,也从侧面证明,某市的确是个资本的乐土,130家公司只缴纳了40人的社保,却缴纳了335亿的资本金

蚂蚁奖

蚂蚁是真正的大力士,而某市的保供企业也有这样的大力士,他们以不到10名参保人员、不到100万的实缴资本,成功列入全市1072家的保供企业中!他们的实力不容怀疑

某市1072家疫情保供企业大数据分析暨颁奖典礼

排名第一的是,某市XX贸易经营部!他们以3万元注册资本、0元实缴资本、0参保人数,成功入围某市保供企业,获得蚂蚁奖第一名!大家鼓掌!这家公司的法人代表赵总实力雄厚,一共持有三家公司,注册资金分别是10万、3万和1万人民币!

特别指出的,是赵总豪掷1万元,开设了某市宝山区XX烟杂店!有效缓解了烟民的焦虑,提出表扬!

某市1072家疫情保供企业大数据分析暨颁奖典礼

排名第二的是,某市XX农副产品市场经营管理有限公司,他们以3万元注册资本、3万元实缴资本、0参保人数,获得蚂蚁奖第二名!致敬!

特别指出的是,这家公司的经营范围,是为本市场内农副产品经营者提供管理服务,本身并不具备副食品销售的资格;市场内的商户,能否挂靠在该公司名下提供保供服务,组委会无法了解;市场管理公司是否有充足人力核查供应商的健康情况,组委会也无法了解,但是我们相信某市评选出来的保供企业,一定全是有实力的企业!

排名第三的是,广东XX食品股份有限公司某市分公司,他们以0元资本,3参保人数,获得蚂蚁奖第三名!而这家公司先后被某市处罚了三次,包括虚假广告和虚假标注食品生产日期,但是他们能够成功入围,就说明他们改过自新了!

某市1072家疫情保供企业大数据分析暨颁奖典礼

排名第四的是,某市XX物流有限公司,注册资金50万,实缴资本50万,参保人数1人。这家公司的老板名下有两家公司,一家成立于2021年10月19日,注册资金200万;而本次入围的公司,注册资金只有50万,1人参保,想必这个人是个多面手吧,要不然又如何能入围呢?

某市1072家疫情保供企业大数据分析暨颁奖典礼

排名第五的是,某市XX贸易有限公司,这家公司是一人公司,注册资金20万,实缴资本0元,参保人数0人,属于小规模纳税人,能列入保供企业,想必有自己独到的优势。

最具潜力小新人奖

接下来我们颁布的是最具潜力小新人奖,他们成立不到一年,就能以不到100万的注册资本、0名参保人数,成功在超市商贸、电商平台、餐饮企业、零售药品四大领域,进入某市保供企业名单!他们是:

某市1072家疫情保供企业大数据分析暨颁奖典礼

但排名第一的是,某市XX农特产有限公司,这家公司成立于2022年1月4日,注册资金300万,实缴资金0元,参保人数0人,就能成功作为电商平台入围某市保供企业!曾给闵行捐菜,点赞

更令人震惊的是,这家公司并不是背后有大树的公司,而是两个自然人联合成立的小公司!这家公司开业不到4个月,就被澎湃新闻报道,大家请看报道详情《万人团购被指不发货不退款 涉及金额超过300万》,因选的物流没派送导致

某市1072家疫情保供企业大数据分析暨颁奖典礼

所以,这家公司被组委会授予最佳新人奖,名至实归。

另外,某市XX商贸有限公司,成立于2021年12月27日,注册资金100万,实缴0元,参保0人,便能纳入闵行区的保供企业名单,公司年龄同样不到4个月。

我狠狠批评了一下小奶猫球球,看你3个月大,现在除了吃喝睡加卖萌,别的什么都不会;你看看这些新公司,不到4个月大,都上了某市保供企业的光荣榜了!但球球跟我喵了一声,他敢骂我荒喵

某市1072家疫情保供企业大数据分析暨颁奖典礼

不务正业奖

某市XX净生物技术有限公司,成立于2021年11月22日,注册资金2000万,实缴资金0元,社保0人,但是这家生物技术公司成功入围了某市保供企业超市商贸组!与他同行的巨无霸相比,这家新生企业毫不逊色。

二等奖,是某市XX茶点餐饮管理有限公司,注册资金200万,实缴资本0元,社保0人,但是这家餐饮管理公司,也成功入围了某市某市保供企业超市商贸组!其实这家公司是一等奖的有力竞争对手,但是餐饮离超市更近,生物技术离超市更远,所以不务正业奖颁发给了某市XXX生物技术有限公司!

三等奖,是某市金山区的某市XX医疗科技中心,注册资金100万,实缴100万他们纳入了零售药品组,但是他们的经营范围,竟然还有食品经营,而且是某市金山市场监督管理局发证的,所以,他们荣获了第三名!

某市1072家疫情保供企业大数据分析暨颁奖典礼

四等奖,是某市杨浦区XXX智慧助老服务中心,注册资本5000元(没错,0.5万),经营范围是「开展科技助老的咨询及调研,推进科技助老项目的实施及应用;承接政府相关委托项目」,但是也入围了餐饮企业组,完全脱离了经营范围,组委会不知道这个保供企业是如何确定的。但是有一说一,这家企业至少一直在招餐厅厨师,应该至少能满足500人的食品需求吧。

某市1072家疫情保供企业大数据分析暨颁奖典礼

城市特色奖

XX川咖啡(某市)有限公司,成立于2021年8月19日,注册资金1000万,实缴资本0元,社保0人,能够作为一个单品,杀入某市保供企业目录,成为六家咖啡保供企业中的一员,跟星巴克、拉比卡、皮氏咖啡并列,这是何等的城市特色!

某市1072家疫情保供企业大数据分析暨颁奖典礼

在六家咖啡企业中,他是当之无愧的城市特色奖。当然,除了XX川咖啡,还有长沙XX半咖啡,都是注册资金不高、实缴资金为零,参保人数为零的企业,所以,长沙XX半咖啡,理所应当获得二等奖。

除了咖啡,还有鞋子。得物作为电商平台上榜,如果我没记错,得物是卖潮鞋的,我还在上面买过AJ,但是现在某市正在封控,万万没想到竟然还有买潮鞋的需求?如果不是穿给大白看,那就是穿给方舱的病友看吧?毕竟有人在方舱开始谈恋爱了。

某市1072家疫情保供企业大数据分析暨颁奖典礼

既往不咎奖

一等奖,某市XXX绿色食品发展有限公司,这家公司在2019年4月26日,被最高人民法院公示为失信公司,而且有200条风险,这样的企业能够入围保供名单,说明某市有关部门本着治病救人,既往不咎的原则选择了保供企业。

某市1072家疫情保供企业大数据分析暨颁奖典礼

二等奖,某市XX副食品有限公司,这家公司的实际控制人是公示的老赖,被限制高消费,而且目前尚未执行法院裁定。当然,魔都还是要既往不咎嘛。

某市1072家疫情保供企业大数据分析暨颁奖典礼

节约资金奖

XXX源(某市)企业发展有限公司,注册资金3000万,实缴资本1.85万,参保人员两名,入围保供超市商贸组。我注意到这家公司,是因为他在缴纳实缴资本的企业里面,实缴资本是最低,只有1.85万元,额……

某市XX坊餐饮有限公司,这家公司像是未卜先知一样,在2022年1月24日,完成了注册资本金变更,把原来的100万注册资本,变更到了3800万注册资本;当然实缴资本和参保人数还是0,恩。

某市1072家疫情保供企业大数据分析暨颁奖典礼

组委会没什么好说的。

东西合璧奖

XX商贸(某市)有限公司,入围外资企业保供名单,但是这家公司注册资金用的是人民币,而且只有100万,还是一个自然人独资的有限责任公司,不知道某市有关部门是如何认定外资企业的,这种工作细致程度,佩服。

某市1072家疫情保供企业大数据分析暨颁奖典礼

多才多艺奖

某市稷良食品有限公司,即是超市商超类企业,又是外资企业,也是整个1072家保供企业里面的独一份,可能是讨个社稷良心的好彩头吧?

某市1072家疫情保供企业大数据分析暨颁奖典礼

马虎大意奖

这个奖,要颁布给组织保供入围工作的某市商务委员会,因为他们写错了40家入围企业的名字,错误率达到4%,让我花费了大量时间去矫正数据。

有错别字的,比如某市常林汽车运费有限公司,某市鑫欣源()副食品有限公司,某市长宁唐宫海鲜坊()有限公司,猪和萝卜(某市)餐饮管理~~公司~~有限公司,某市又一村(春)农贸市场经营管理有限公司;

有缺字的,比如「杭州可靠护理用品」应该是「杭州可靠护理用品股份有限公司」;有多字的,比如「某市云丰国际物流(某市)有限公司」应该是「云丰国际物流(某市)有限公司」;

还有名字全部搞错的,比如某市七宝商城农产品交易市场、某市江杨农产品批发市场这种,一共24个,全名都应该是XX市场经营管理有限公司。

你说如果真的执行了,发现企业公章跟保供企业名单上的名称不符,结果物流车辆/人员又被居委、社区拦住了,这不是耽误事儿么?

错误名单如下,还是友情建议某市商务委员会尽快修改一下,知道大家抢菜很累,但是核心大事不能出错啊!何况还是错了40个企业名字……

超市商贸 杭州娃哈哈集团有限公司某市分公司
超市商贸 某市爱婴室商务服务有限公司
超市商贸 某市全球儿童用品有限公司
超市商贸 某市笑昕食品有限公司
超市商贸 某市依牛羊食品有限公司
超市商贸 杭州可靠护理用品
电商平台 某市悠乐汇企业管理咨询有限公司
零售药品 某市万仕诚国药(药业)制品有限公司
外资企业 爱德华(某市)医疗用品公司
物流总部 某市晶粮实业(集团)股份有限公司
物流总部 某市鑫欣源副食品有限公司
物流总部 某市常林汽车运费有限公司
物流总部 某市云丰国际物流(某市)有限公司
餐饮企业 某市鑫博海农副畜产品加工有限公司
餐饮企业 某市龙神食品(集团)有限公司
餐饮企业 领驰食品发展(某市)有限公司
餐饮企业 某市长宁唐宫海鲜坊有限公司
餐饮企业 猪和萝卜(某市)餐饮管理公司有限公司
餐饮企业 某市煜盐餐饮有限公司
副食品 中粮家佳康(江苏)公司某市分公司
副食品 某市江桥批发市场
副食品 某市西郊国际农产品交易中心
副食品 某市拾分味道食品(集团)有限公司
副食品 某市国京农贸综合市场经营管理有限公司
副食品 某市申象农贸市场管理有限公司
副食品 某市又一村农贸市场经营管理有限公司
副食品 某市农产品中心批发市场
副食品 某市江杨农产品批发市场
副食品 某市江阳水产品批发交易市场
副食品 某市七宝商城农产品交易市场
副食品 某市浦南农副产品批发市场
副食品 某市东方国际水产中心市场
副食品 某市龙上农副产品批发市场
副食品 某市辉展果蔬市场
副食品 某市胜辛集贸市场
副食品 某市陇南肉类批发市场
副食品 某市新安农副产品市场
副食品 某市三林副食品批发交易市场
副食品 某市军工路国太综合市场
副食品 某市江杨水产批发交易市场
副食品 某市青莲上选食品公司

某市商务委员会发布的《疫情防控生活物资保障企业查询库》,入口在这里,请感兴趣的同学查收。我的数据时间是4月21日14点,当时还是1072家,目前某市保障企业已经变成1124家了,不过大数据分析还是有借鉴意义的。

某市1072家疫情保供企业大数据分析暨颁奖典礼

感觉我每天都在封号的边缘疯狂试探,但我保证,我写的每篇文章,都有国家机关公开信源的数据支持。只要某市不再出新的魔幻事件,我保证我马上就不写某市了。

转自:https://mp.weixin.qq.com/s/2QdJhPA7m8HE46NXfSARig

改变 Python 对象规则的黑魔法 Metaclass

今天小明哥要分享的主题是:改变类定义的神器-metaclass

看到标题,你可能会想改变类的定义有什么用呢?什么时候才需要使用metaclass呢?

今天我将带大家设计一个简单的orm框架,并简单剖析一下YAML这个序列化工具的原理。

Python类的上帝-type

说到metaclass,我们首先必须清楚一个最基础的概念就是对象是类的实例,而类是type的实例,重复一遍:

  1. 对象是类的实例
  2. 类是type的实例

在面向对象的编程模型中,类就相当于一个房子的设计图纸,而对象则是根据这个设计图纸建出来的房子。

下图中,玩具模型就可以代表一个类,而具体生产出来的玩具就可以代表一个对象:

改变 Python 对象规则的黑魔法 Metaclass

总之,类就是创建对象的模板。

而type又是创建类的模板,那么我们就可以通过type创建自己想要的类。

比如定义一个 Hello 的 class:

class Hello(object):
    def hello(self, name='world'):
     print('Hello, %s.' % name)

当 Python 解释器载入 hello 模块时,就会依次执行该模块的所有语句,执行结果就是动态创建出一个 Hello 的 class对象。

type()函数既可以查看一个类型或变量的类型,也可以根据参数创建出新的类型,比如上面那段类的定义本质上就是:

def hello(self, name='world'):
    print('Hello, %s.' % name)
Hello = type('Hello', (object,), dict(hello=hello))

type()函数创建class 对象,依次传入 3 个参数:

  • class 类的名称;

  • 继承的父类集合,注意 Python 支持多重继承,如果只有一个父类,别忘了 tuple 的单元素写法;

  • class 的方法名称与函数绑定以及字段名称与对应的值,这里我们把函数 fn 绑定到方法名 hello 上。

通过 type() 函数创建的类和直接写 class 是完全一样的,因为 Python 解释器遇到 class 定义时,仅仅是扫描一下class 定义的语法,然后调用 type() 函数创建出 class。

正常情况下,我们肯定都是用 class Xxx… 来定义类,但是type() 函数允许我们动态创建出类来,这意味着Python这门动态语言支持运行期动态创建类。你可能感受不到这有多强大,要知道想在静态语言运行期创建类,必须构造源代码字符串再调用编译器,或者借助一些工具生成字节码实现,本质上都是动态编译,会非常复杂。

metaclass到底是什么

那type和metaclass有什么关系呢?metaclass到底是什么呢?

我认为metaclass 其实就是type或type的子类,通过继承type,重载__call__运算符,便可以在class类对象创建时作出一些修改。

对于类 MyClass:

class MyClass():
 pass

其实相当于:

class MyClass(metaclass = type):
 pass

一旦我们把它的 metaclass 设置成 MyMeta:

class MyClass(metaclass = MyMeta):
 pass

MyClass 就不再由原生的 type 创建,而是会调用 MyMeta 的__call__运算符重载。

class = type(classname, superclasses, attributedict) 
## 变为了
class = MyMeta(classname, superclasses, attributedict)

对于具有继承关系的类:

class Foo(Bar):
 pass

Python做了如下的操作:

  • Foo中有__metaclass__这个属性吗?如果是,Python会通过__metaclass__创建一个名字为Foo的类(对象)
  • 如果Python没有找到__metaclass__,它会继续在Bar(父类)中寻找__metaclass__属性,并尝试做和前面同样的操作。
  • 如果Python在任何父类中都找不到__metaclass__,它就会在模块层次中去寻找__metaclass__,并尝试做同样的操作。
  • 如果还是找不到__metaclass__,Python就会用内置的type来创建这个类对象。

假想一个很傻的例子,你决定在你的模块里所有的类的属性都应该是大写形式。有好几种方法可以办到,但其中一种就是通过在模块级别设定__metaclass__:

class UpperAttrMetaClass(type):
    ## __new__ 是在__init__之前被调用的特殊方法
    ## __new__是用来创建对象并返回之的方法
    ## 而__init__只是用来将传入的参数初始化给对象
    ## 你很少用到__new__,除非你希望能够控制对象的创建
    ## 这里,创建的对象是类,我们希望能够自定义它,所以我们这里改写__new__
    ## 如果你希望的话,你也可以在__init__中做些事情
    ## 还有一些高级的用法会涉及到改写__call__特殊方法,但是我们这里不用
    def __new__(cls, future_class_name, future_class_parents, future_class_attr):
        ##遍历属性字典,把不是__开头的属性名字变为大写
        newAttr = {}
        for name,value in future_class_attr.items():
            if not name.startswith("__"):
                newAttr[name.upper()] = value

        ## 方法1:通过'type'来做类对象的创建
        ## return type(future_class_name, future_class_parents, newAttr)

        ## 方法2:复用type.__new__方法,这就是基本的OOP编程
        ## return type.__new__(cls, future_class_name, future_class_parents, newAttr)

        ## 方法3:使用super方法
        return super(UpperAttrMetaClass, cls).__new__(cls, future_class_name, future_class_parents, newAttr)


class Foo(object, metaclass = UpperAttrMetaClass):
    bar = 'bip'

print(hasattr(Foo, 'bar'))
## 输出: False
print(hasattr(Foo, 'BAR'))
## 输出:True

f = Foo()
print(f.BAR)
## 输出:'bip'

简易ORM框架的设计

ORM全称“Object Relational Mapping”,即对象-关系映射,就是把关系数据库的一行映射为一个对象,也就是一个类对应一个表,这样,写代码更简单,不用直接操作SQL语句。

现在设计一下ORM框架的调用接口,比如用户想通过User类来操作对应的数据库表User,我们期待他写出这样的代码:

class User(Model):
    ## 定义类的属性到列的映射:
    id = IntegerField('id')
    name = StringField('username')
    email = StringField('email')
    password = StringField('password')

## 创建一个实例:
u = User(id=12345, name='xiaoxiaoming', email='test@orm.org', password='my-pwd')
## 保存到数据库:
u.save()

上面的接口通过常规方法很难或几乎很难实现,但通过metaclass就会相对比较简单。核心思想就是通过metaclass修改类的定义,将类的所有Field类型的属性,用一个额外的字典去保存,然后从原定义中删除。对于User创建对象时传入的参数(id=12345, name=’xiaoxiaoming’等)可以模仿字典的实现或直接继承dict类保存起来。

其中,父类Model和属性类型StringFieldIntegerField是由ORM框架提供的,剩下的魔术方法比如save()全部由metaclass自动完成。虽然metaclass的编写会比较复杂,但ORM的使用者用起来却异常简单。

首先定义Field类,它负责保存数据库表的字段名和字段类型:

class Field(object):

    def __init__(self, name, column_type):
        self.name = name
        self.column_type = column_type

    def __str__(self):
        return '<%s:%s>' % (self.__class__.__name__, self.name)

在Field的基础上,进一步定义各种类型的Field,比如StringField,IntegerField等等:

class StringField(Field):

    def __init__(self, name):
        super(StringField, self).__init__(name, 'varchar(100)')

class IntegerField(Field):

    def __init__(self, name):
        super(IntegerField, self).__init__(name, 'bigint')

下一步,编写ModelMetaclass:

class ModelMetaclass(type):

    def __new__(cls, name, bases, attrs):
        if name == 'Model':
            return type.__new__(cls, name, bases, attrs)
        print('Found model: %s' % name)
        mappings = dict()
        for k, v in attrs.items():
            if isinstance(v, Field):
                print('Found mapping: %s ==> %s' % (k, v))
                mappings[k] = v
        for k in mappings.keys():
            attrs.pop(k)
        attrs['__mappings__'] = mappings  ## 保存属性和列的映射关系
        attrs.setdefault('__table__', name) ## 当未定义__table__属性时,表名直接使用类名
        return type.__new__(cls, name, bases, attrs)

以及基类Model:

class Model(dict, metaclass=ModelMetaclass):

    def __init__(self, **kw):
        super(Model, self).__init__(**kw)

    def __getattr__(self, key):
        try:
            return self[key]
        except KeyError:
            raise AttributeError(r"'Model' object has no attribute '%s'" % key)

    def __setattr__(self, key, value):
        self[key] = value

    def save(self):
        fields = []
        params = []
        args = []
        for k, v in self.__mappings__.items():
            fields.append(v.name)
            params.append('?')
            args.append(getattr(self, k, None))
        sql = 'insert into %s (%s) values (%s)' % (self.__table__, ','.join(fields), ','.join(params))
        print('SQL: %s' % sql)
        print('ARGS: %s' % str(args))

ModelMetaclass中,一共做了几件事情:

  1. 在当前类(比如User)中查找定义的类的所有属性,如果找到一个Field属性,就把它保存到一个__mappings__的dict中,同时从类属性中删除该Field属性(避免实例的属性遮盖类的同名属性);
  2. 当类中未定义__table__字段时,直接将类名保存到__table__字段中作为表名。

Model类中,就可以定义各种操作数据库的方法,比如save()delete()find()update等等。

我们实现了save()方法,把一个实例保存到数据库中。因为有表名,属性到字段的映射和属性值的集合,就可以构造出INSERT语句。

测试:

u = User(id=12345, name='xiaoxiaoming', email='test@orm.org', password='my-pwd')
u.save()

输出如下:

Found model: User
Found mapping: id ==> <IntegerField:id>
Found mapping: name ==> <StringField:username>
Found mapping: email ==> <StringField:email>
Found mapping: password ==> <StringField:password>
SQL: insert into User (id,username,email,password) values (?,?,?,?)
ARGS: [12345, 'xiaoxiaoming''test@orm.org''my-pwd']

测试2:

class Blog(Model):
    __table__ = 'blogs'
    id = IntegerField('id')
    user_id = StringField('user_id')
    user_name = StringField('user_name')
    name = StringField('user_name')
    summary = StringField('summary')
    content = StringField('content')


b = Blog(id=12345, user_id='user_id1', user_name='xxm', name='orm框架的基本运行机制', summary="简单讲述一下orm框架的基本运行机制",
         content="此处省略一万字...")
b.save()

输出:

Found model: Blog
Found mapping: id ==> <IntegerField:id>
Found mapping: user_id ==> <StringField:user_id>
Found mapping: user_name ==> <StringField:user_name>
Found mapping: name ==> <StringField:user_name>
Found mapping: summary ==> <StringField:summary>
Found mapping: content ==> <StringField:content>
SQL: insert into blogs (id,user_id,user_name,user_name,summary,content) values (?,?,?,?,?,?)
ARGS: [12345, 'user_id1''xxm''orm框架的基本运行机制''简单讲述一下orm框架的基本运行机制''此处省略一万字...']

可以看到,save()方法已经打印出了可执行的SQL语句,以及参数列表,只需要真正连接到数据库,执行该SQL语句,就可以完成真正的功能。

YAML序列化工具的实现原理浅析

YAML是一个家喻户晓的 Python 工具,可以方便地序列化 / 逆序列化结构数据。

官方文档:https://pyyaml.org/wiki/PyYAMLDocumentation

安装:

pip install pyyaml

YAMLObject 的任意子类支持序列化和反序列化(serialization & deserialization)。比如说下面这段代码:

import yaml


class Monster(yaml.YAMLObject):
    yaml_tag = '!Monster'

    def __init__(self, name, hp, ac, attacks):
        self.name = name
        self.hp = hp
        self.ac = ac
        self.attacks = attacks

    def __repr__(self):
        return f"{self.__class__.__name__}(name={self.name}, hp={self.hp}, ac={self.ac}, attacks={self.attacks})"


monster1 = yaml.load("""
--- !Monster
name: Cave spider
hp: [2,6]
ac: 16
attacks: [BITE, HURT]
""")
print(monster1, type(monster1))

monster2 = Monster(name='Cave lizard', hp=[36], ac=16, attacks=['BITE''HURT'])
print(yaml.dump(monster2))

运行结果:

Monster(name=Cave spider, hp=[2, 6], ac=16, attacks=['BITE''HURT']) <class '__main__.Monster'>
!Monster
ac: 16
attacks: [BITE, HURT]
hp: [3, 6]
name: Cave lizard

这里面调用统一的 yaml.load(),就能把任意一个 yaml 序列载入成一个 Python Object;而调用统一的 yaml.dump(),就能把一个 YAMLObject 子类序列化。

对于 load() 和 dump() 的使用者来说,他们完全不需要提前知道任何类型信息,这让超动态配置编程成了可能。比方说,在一个智能语音助手的大型项目中,我们有 1 万个语音对话场景,每一个场景都是不同团队开发的。作为智能语音助手的核心团队成员,我不可能去了解每个子场景的实现细节。

在动态配置实验不同场景时,经常是今天我要实验场景 A 和 B 的配置,明天实验 B 和 C 的配置,光配置文件就有几万行量级,工作量不可谓不小。而应用这样的动态配置理念,就可以让引擎根据配置文件,动态加载所需要的 Python 类。

对于 YAML 的使用者也很方便,只要简单地继承 yaml.YAMLObject,就能让你的 Python Object 具有序列化和逆序列化能力。

据说即使是在大厂 Google 的 Python 开发者,发现能深入解释 YAML 这种设计模式优点的人,大概只有 10%。而能知道类似 YAML 的这种动态序列化 / 逆序列化功能正是用 metaclass 实现的人,可能只有 1% 了。而能够将YAML 怎样用 metaclass 实现动态序列化 / 逆序列化功能讲出一二的可能只有 0.1%了。

对于YAMLObject 的 load和dump() 功能,简单来说,我们需要一个全局的注册器,让 YAML 知道,序列化文本中的!Monster需要载入成 Monster 这个 Python 类型,Monster 这个 Python 类型需要被序列化为!Monster标签开头的字符串。

一个很自然的想法就是,那我们建立一个全局变量叫 registry,把所有需要逆序列化的 YAMLObject,都注册进去。比如下面这样:

registry = {}
 
def add_constructor(target_class):
    registry[target_class.yaml_tag] = target_class

然后,在 Monster 类定义后面加上下面这行代码:

add_constructor(Monster)

这样的缺点很明显,对于 YAML 的使用者来说,每一个 YAML 的可逆序列化的类 Foo 定义后,都需要加上一句话add_constructor(Foo)。这无疑给开发者增加了麻烦,也更容易出错,毕竟开发者很容易忘了这一点。

更优雅的实现方式自然是通过metaclass 解决了这个问题,YAML 的源码正是这样实现的:

class YAMLObjectMetaclass(type):
    def __init__(cls, name, bases, kwds):
        super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds)
        if 'yaml_tag' in kwds and kwds['yaml_tag'is not None:
            cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
            cls.yaml_dumper.add_representer(cls, cls.to_yaml)
    ## 省略其余定义
 
class YAMLObject(metaclass=YAMLObjectMetaclass):
    yaml_loader = Loader
    yaml_dumper = Dumper
    ## 省略其余定义

可以看到,YAMLObject 把 metaclass 声明成了 YAMLObjectMetaclass,YAMLObjectMetaclass则会改变YAMLObject类和其子类的定义,就是下面这行代码将YAMLObject 的子类加入到了yaml的两个全局注册表中:

cls.yaml_loader.add_constructor(cls.yaml_tag, cls.from_yaml)
cls.yaml_dumper.add_representer(cls, cls.to_yaml)

YAML 应用 metaclass,拦截了所有 YAMLObject 子类的定义。也就是说,在你定义任何 YAMLObject 子类时,Python 会强行插入运行上面这段代码,把我们之前想要的add_constructor(Foo)add_representer(Foo)给自动加上。所以 YAML 的使用者,无需自己去手写add_constructor(Foo)add_representer(Foo)

总结

这次分享主要是简单的浅析了 metaclass 的实现机制。通过实现一个orm框架并解读 YAML 的源码,相信你已经对metaclass 有了不错的理解。

metaclass 是 Python 黑魔法级别的语言特性,它可以改变类创建时的行为,这种强大的功能使用起来务必小心。

看完本文,你觉得装饰器和 metaclass 有什么区别呢?欢迎下方留言和我讨论。记得一键三连呦,笔芯!

改变 Python 对象规则的黑魔法 Metaclass

转自:https://mp.weixin.qq.com/s/Ls2UP7Zh4f4dIrf38IVDQA

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

来源/无相财经(ID:wuxiangcj

大鱼吃小鱼,小鱼吃虾米,这是生物圈的法则。
而现在的上海,出现了三种人。
吃人的小虾米,吃人的食人鱼,吃人的大白鲨。
他们是怎么“吃人“的?今天就对最近上海的魔幻新闻,做个总结。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

第一种吃人的,是在疫情中利用居民出不了小区,买不了菜的窘境恶意提价的人。
前几天,一位在上海的小姑娘可能是饿坏了,找了骑手买了20个鸡蛋和6桶方便面。
谁曾想骑手小哥狮子大开口,要价900元。
其中包括代买费570元和跑腿费330元。而两人之前商定的价格,仅仅是270元。
20个鸡蛋加6桶方便面,平日里,不会超过70块钱吧?
270元的价格,姑娘认了,但没想到,“小虾米“愣是能抬到900元!
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
女孩提出要看小票,表示不相信,骑手说没有,女孩又慌又怕,报了警。
警察了解情况后,问骑手,票呢?
骑手支支吾吾说本来就没小票,警察一番仗义执言,怼得骑手说不出话来。
之后骑手恼羞成怒,说不送了,并想要跑腿费。
这时,警察则要求他提供工作证件,男子拿出假证后,被当场识破,最后将钱返还给了女子,而骑手小哥被传唤带走。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
后来,警方对该骑手进行调查,发现他从疫情爆发以来,就通过平台接单、小区蹲点、朋友介绍等方式,在跑腿费和代买费上宰了不少被封住脚步的客人,非法牟利2万多,现在已对其采取刑事强制措施。
一个没有骑手资质的人,冒充骑手,一单就能赚大几百。
一天呢?上万了吧。
况且这还是被逮到的,那些没被逮到的呢?

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

第二种吃人的,是通过特殊渠道,特殊资源,倒买倒卖,哄抬物价的人。
昨天,上海警方发布通告,处理了一个倒买倒卖的人。
这个人短短一周就赚了150万!
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
175万的销售额,150万的利润,利率高达600%!
毒贩子看了沉默,高利贷看了流泪。
马克思看了,想修改一下资本论里的说法——当利润达到300%时,甚至连上绞刑架都毫不畏惧。
在马克思看来利润高达300%,资本家就已经不怕死了。
现在这个高某轻轻松松搞了600%,而且还不用死,仅仅是租了别人的食品经营营业执照,就搞了那么多的钱,他当然敢那么干。
值得注意的是,他还只是个人单干,不涉及公司。
那么,其他那些自己有证,有资源的呢,公司化运营的呢?
前几天,上海梅陇镇的乳头肉,就上了热搜。
群众反映,好不容易等来的物资,竟然全是不能吃的乳头肉。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
刚开始,我还有点不相信,觉得这种肉,是流入不到市场的。
因为猪奶头部位有很多腺体,一般是不能吃的,基本当湿垃圾。
检疫总局也规定宰杀分割生猪后,必须对猪乳头进行修割,所以菜市场基本买不到这种肉。
这不活生生残害群众吗? 
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
现在事情水落石出了,有关部门承认,部分猪肉确实存在质量问题,并启动相关调查问责程序”。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
按照官方的说明,是镇政府的供应商动了手脚,把协议约定的五花肉(2斤)、蹄髈(1斤)换成了猪废料。
镇政府把相关企业已被列入黑名单,换新的供应商。
那么问题来了:
1、梅陇镇是怎么做事前准备的,难道不去走访企业,不详细审核,就随意签合同了?
2、供应商的选择采用的是什么办法,有没有按照程序招标?
昨天,事情水落石出了。
上海警方查明,闵行区梅陇镇政府出资760万元招标买猪肉,结果中标公司用300万元去买劣质猪肉,一下子净赚460万!
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币! 
而上海梅陇镇两干部也因为劣质猪肉事件被免职。
其中一个是副镇长,一个是经发办主任。
没有背景的食人鱼小口吃人,有背景有关系的食人鱼大口吃人!
通常而言,保供单位的选择,一般都要找有货源、有能力、信誉好的大企业。
在上海,为什么有那么多的皮包公司,成了保供单位?

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

几十万、几百万,以上这些,还都是赚的小钱。
接下来,我想谈谈挣得多的,大白鲨级别的。
我们知道,在这次上海的疫情中,一些以京东为代表的大物流公司,在送货的路上,屡遭物业、卡口刁难。
说不是保供单位,不让送。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
运货司机,有时候也是有去无回。以至于大量的菜都烂掉,都送不到居民手里。
是谁在阻碍物流,阻碍这些援助上海的物资?
为什么老百姓很难抢到平价菜,而涨了价的高价菜就很容易买到?

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!

上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
再次,我之前说过,倒买倒卖、哄抬物价,相对而言只能说是小财。
大财是什么?
前两天,王思聪怒怼连花清瘟,冲上热搜。
4月12日,云南紧急拨付了6600万援助上海疫情,其中1600万采购物资,1000万元采购蔬菜。
其余的4000万元都是用来采购中成药……说实话,我不是很理解这波操作。
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
这几天,我看到最多的新闻,就是在上海这座城市,有人拿着疫情当提款机,拿人民当人民币!
上海封控20天了。
这20天,有多少人在忍受高价的食物。忍受发不出工资,和收不到工资的窘境。
很多人被迫无奈,靠网贷活命。
也许,病毒不是最致命的,无限恶意的资本才是最致命的。
最近一个月,他们张着血盆大口,大快朵颐。
而今天,上海已经开始对这些人挨个调查,绳之以法。
我希望,这波重拳应该更猛烈一些,一定要严厉打击上述利用疫情发财的人和企业!
如此,上海才有信心,上海才有希望!
END
上海奸商正被清算:他们拿疫情当提款机,拿人民当人民币!
转自:https://mp.weixin.qq.com/s/2SLf3NOOOCKmxPu1kdD1ww