浅谈估值模型:PB指标与剩余收益估值_pbroe估值模型-程序员宅基地

技术标签: python  权益投资  金融  大数据  

摘要及声明

1:本文简单介绍PB指标的推导以及剩余收益的估值方式; 

2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流;

3:笔者希望搭建出一套交易体系,原则是只做干货的分享。后续将更新更多内容,但工作学习之余的闲暇时间有限,更新速度慢还请谅解;

4:本文主要数据通过Tushare(ID:444829)金融大数据平台接口获取;

5:模型实现基于python3.8;

        笔者看本站有一些人写过剩余收益的文章,但都比较模棱两可。百度上也有一些文章,不过点开都是很多公式推导,缺少理念的拓展。本着只讲干货的原则,笔者本期深入浅出讲一讲剩余收益估值那些事儿。必要的一些公式推导还是需要带上的,但笔者更多是分享自己对剩余收益原理和经济含义的理解。本期主要内容如下:


目录

1. 浅谈PB

1.1 PB估值的优点

1.2 经基本面调整的静态PB指标

2. 剩余收益

2.1 与PB指标的关系

2.2 多期剩余收益的几个推导方式

2.2.1 净盈余关系推导

2.2.2 公式法推导一

2.2.3 公式法推导二

2.3 剩余收益的折现

2.3.1 PB指标与单阶段折现

2.3.2 PB指标与多阶段折现

2.3.3 可持续因子折现

3 模型实现

3.1 代码实现

3.2 敏感性分析

4. 总结

5. 往期精选


1. 浅谈PB

        PB指标比较入门和基础,本来笔者不想多谈,网上也已经有很多文章写过,但由于后面涉及到残余收益,不说又差些意思,因此这里笔者还是打算简单介绍一下,并推导一下重要的公式变形和结论,已经对PB指标很熟或者不感兴趣的可以直接跳过本节。

        PB指标又称为市净率,可以利用股价除以公司每股净资产账面价值(Book value per share, 下文简称“BVPS”)得到。笔者在市盈率那期内容中介绍了PE指标的诸多变形,例如静态、动态、TTM、NTM、PEG和基本面调整市盈率等等(文章传送门:PE指标)。但打开交易软件会发现除了PE指标,其它的乘数指标往往只有光溜溜的一个名字,并不像PE指标那样有诸如静态、动态、TTM这种前/后缀。

        笔者看网上对这个原因都避而不谈,好像PE天生就该有这么多变形,其它指标就不配? 事实上PB、PS、PCF等价格乘数指标照样可以有很多变形,而且实务中也确实有人会使用这些变形指标。之所以很少见到这些变形,原因主要是PE指标的分母EPS是股东(韭菜)们最为关心的指标,静态动态PE一列出来,股东们就能看到公司收益增减变化,下回分红多少钱能进口袋也就有了个预期。其次,由于财务报表的勾稽关系,EPS往往和BVPS、销售额及现金流这些指标呈正相关关系,通过PE动静态指标一看大致也能判断出其它指标变化情况。这样一个受股东欢迎,又具有代表性的指标当然要大做文章,于是其它指标就剥得只剩个光杆司令了,很多行情软件甚至不展示PS和PCF这种指标。

1.1 PB估值的优点

        笔者罗列了一些比较重要的优缺点当作是复习了。尽管行情软件上被PE指标夺去很多光环,PB指标的优势也是很突出的,例如:

        1):除资不抵债,PB指标的分母BVPS绝大多数情况下都是正数;

        2):PB的分母BVPS的波动相较于PE的分母EPS要低很多;

        3):企业资产流动性较高,计量属性以公允价值为主,例如金融类行业;

        4):可用于面临破产清算的企业估值;

        不过缺点也是有的:

        1):企业有大量的表外资产/负债(off-B/S);

        2):会计准则和计量方式会对PB产生影响,例如存货计量方式,减值折旧等;

        3):回购增发等行为会对PB产生影响;

1.2 经基本面调整的静态PB指标

        由于PE那期介绍过各种变形的计算规则,笔者就不一一推导了,下面推导一个经基本面调整的静态PB指标,仅作展示。由于是经基本面调整的静态指标,分母采用当期的BVPS,分子采用红利折现计算的内在价值:

PB=\frac{D_{1}/r-g}{BVPS_{0}}=\frac{D_{1}}{BVPS_{0}\times (r-g)}=\frac{NI_{1}\times (1-b)}{BVPS_{0}\times (r-g)}\, \, [1]

        其中:

        D_{1}:下期股利

        r:股东要求回报率

        g:可持续增速(sustainable growth rate)

        BVPS_{0}:当期每股净资产

        b:利润留存率

        NI_{1}:下期每股净利润

        定义ROE的计算式为:

ROE_{1}=\frac{NI_{1}}{BVPS_{0}}

        则[1]式可以进一步变形为:

\frac{NI_{1}\times (1-b)}{BVPS_{0}\times (r-g)}=\frac{ROE_{1}\times (1-b)}{r-g}\, \, [2]

        由于g = ROE_{1}\times b, [2]可以进一步变形得到[3]式:

PB=\frac{ROE_{1}-g}{r-g}\, \, [3]

        通过观察[3]式不难发现几个结论:

        1):当ROE大于r,PB大于1;

        2):当ROE小于r,PB小于1;

        3):当ROE等于r,PB等于1;

        记住[3]式及这三个结论,等一下它们大有作为。

2. 剩余收益

        笔者认为从自由现金流折现到股利折现实际上是一个范围不断收缩的过程,而剩余收益正是这个收缩过程中的一个过渡。如图一所示,在企业的收入大蛋糕中扣除掉费用支出,经营活动的垫资,给政府的税收等等支出后得到可供债权人和股东支配的自由现金流FCFF;在这基础上继续扣除债权人分走那部分利息再加上税盾,得到可供股东支配的自由现金流FCFE;绝大多数人学习过程中会直接从FCFE跳到利用股利进行折现,并且教科书会说一些过场式的陈词滥调,比如:FCFFE代表的是一个公司潜在的分红能力,而股利是一个公司实实在在发出了多少分红。对于一个连年挣钱却还一毛不拔的铁公鸡,FCFE是比较合理的估值方式,云云。

 图一:企业利益分配流

        FCFE是股东可以自由支配的现金流,但一来它不是个实打实的应计制概念,除了不能完全体现应计制的优势,FCF也有可能是个负的,不利于折现。二来自由支配并不意味着股东都能把FCFE全部装进自己的腰包。对于一家FCF是负的,而且一毛不拔的铁公鸡(不发股利)又该怎么办?

        有没有这样一个概念,既能体现公司为股东创造了多少经济价值,又是一个应计制的。首先可以想到的是净利润,它来自利润表,是一个应计制的科目。其次净利润是Bottom line,后面分红多少除了看分红率,净利润才是高分红的基础。作为股东最关心的企业盈利能力指标,ROE就采用了净利润作为分子。

        净利润能不能用来折现?可以。但这样还是差了一块东西,之前说过还需要体现经济价值,也就是经济学告诉我们的机会成本。于是马上可以想到折现率r,而所有者权益又是股东的投入资本,因此通过折现率乘以所有者权益账面价值即可得到股东的机会成本。但总说经济价值指代得也不明确,于是这个理念被取了一个名字,即是剩余收益,也称残余收益(Residual income,下文简称RI),接下来就简单了,如[4]式:

RI_{t+1} = NI_{t+1}-BV_{t}\times r_{e}\, \, [4]

        其中,BV_{t}为第t期所有者权益账面价值(Book value of equity,下文简称“BV”)。

         不过需要注意的是图一只是用来讲解一下理念,里面的长方形面积大小关系并不代表绝对金额的大小关系。实际上分红不一定会小于RI(例如借债发股利),FCFE也不一定会大于RI(例如折旧摊销很小,资产和营运资金投入又很高)。

2.1 与PB指标的关系

        之前推导的PB看似与RI没有关系,实际上RI通过一个巧妙的变形就可与PB指标联系起来。

        将[4]式左边的所有者权益提出:

RI_{t+1} =BV_{t}\times ( \frac{NI_{t+1}}{BV_{t}}- r_{e})

        通过ROE的计算式就可以将上式简化为:

RI_{t+1} =BV_{t}\times ( ROE_{t+1}- r_{e})\, \, [5]

        观察[5]并联系[3]式,可以总结得到以下结论:

        1):当ROE大于r,RI为正数,PB指标大于1;

        2):当ROE小于r,RI为负数,PB指标小于1;

        3):当ROE等于r,RI为0,PB指标等于1;

        这几条结论中,只要成立其中一个小条件,该条结论都可以被直接推出来。例如只要知道基本面修正的PB指标大于1,那么可以直接推出ROE是大于r的,RI是大于0的。

        这个关系不仅是纯数学公式推导,还蕴含着经济原理,即RI用来衡量公司为股东创造的经济价值,ROE是公司盈利能力,r是股东机会成本;当ROE小于r,意味着公司为股东创造的价值不足以覆盖股东的机会成本,此时RI便为负数,基本面修正的静态PB指标也小于1,公司从基本面上看处于破净状态

2.2 多期剩余收益的几个推导方式

        剩余收益的折现与现金流折现是一样的原理,RI其实是通过净利润计算出来的,是一个增量的概念,与净利润不停被计入所有者权益科目一样的逻辑,这个往里加的对象便是公司的所有者权益账面价值。因此,不同于其它估值模型,剩余收益现金流折第一个需要注意的点是当期净资产的账面价值加上未来RI的增量现金流折现。这个得到的结果才是公司的总内在价值,即[6]式:

Intrinsic\, \, Value_{0} = BV_{0} +\sum_{i=1}^{n}\frac{RI_{i}}{(1+r_{i})^{n}}\, \, [6]

        可以看到,[6]式中的当期净资产账面价值是直接可以通过财报得到的,问题在于后面的RI未来现金流加总,下面笔者将推导几种未来RI的推导方式,下面涉及的公式推导会比较较多

2.2.1 净盈余关系推导

        回顾剩余收益的计算式, 下一期的RI可以计算为:

RI_{1} = NI_{1}-BV_{0}\times r_{e}

        不难发现影响RI的几个变量无非是净利润,期初净资产和折现率。看到净利润和净资产直接联想到ROE的公式,只要假设公司未来的ROE水平和折现率,净盈余关系或者清洁盈余关系(clean surplus relationship)成立(成立条件例如:累计其它综合收益科目为0,股本不能变化等),就能直接将未来的RI推算出来。

        因为净盈余关系:

BV_{1} = BV_{0} + NI_{1} - Dividend_{1}

         可以在RI_{1}的基础上直接推导出RI_{2}, 其中Div为分红:

RI_{2} = NI_{2}-BV_{1}\times r_{e}=NI_{2}-(BV_{0}+NI_{1}-Div_{1})\times r_{e}\, \, \, [7]

         按照[7]式这样就可以不断将未来RI计算出来。下面笔者以BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%且恒定进行简单的四期RI计算展示:

Year(t) 1 2 3 4
BV_{t-1} 1000 1190 1416.10 1685.16
NI=ROE\times BV 200 238 283.22 337.03
Div_{t} 10 11.9 14.161 16.85
BV_{t} 1190 1416.10 1685.16 2005.34
BV_{t}\times r_{e} 80 95.20 113.29 134.81
RI_{t} = NI-BV\times r_{e} 120 142.80 169.93 202.22

 表一:净盈余关系计算多期剩余收益

2.2.2 公式法推导一

        由于以下几个关系(字母注释详见PB指标推导部分,没看明白可以留言):

NI_{1} = ROE_{1}\times BV_{0}

NI_{1} - Div_{1} = NI_{1}\times b

g = ROE \times b

        [7]式可继续化简:

RI_{2} =NI_{2}-(BV_{0}+NI_{1}\times b)\times r_{e}=NI_{2}-(BV_{0}+ROE\times BV_{0}\times b)\times r_{e}

        将BV提出:

RI_{2} = NI_{2}-BV_{0}\times (1+g)\times r_{e}

        按这个方式可以写出第三期的剩余收益:

RI_{3} = NI_{3}-(BV_{2}+NI_{3}-Div_{3})\times r_{e}=NI_{3}-BV_{2}\times (1+ROE_{3}\times b)\times r_{e}

        化简一下:

        RI_{3} = NI_{3}-BV_{2}\times (1+g)\times r_{e}

        像这样可以将后面t期的RI用公式[8]表示出来:

RI_{t} = NI_{t}-BV_{t-1}\times (1+g)^{t}\times r_{e}\, \, \, [8]

        公式[8]即为一般公式,假设条件是净盈余关系成立、ROE、股利支付率保持不变。

2.2.3 公式法推导二

        推导出的一般公式[8]中含有一个第t期的净利润,这预测起来比较麻烦。不过在推导RI公式的时候还有一个变形式[5],[5]式中是不含净利润这一项的,因此可以依照上面的原理推导出另一个多期计算式:

RI_{t+1} =BV_{0}\times (1+g)^{t}\times ( ROE_{t+1}- r_{e})\, \, [9]

        还是用刚刚笔者举例使用的数据:BV初=1000, ROE=20%且恒定,股利支付率5%且恒定,r=8%,净盈余关系成立,下面将已知数据直接带入[9]式计算四期的剩余收益:

Year 1 2 3 4
g=ROE\times b 0.19 0.19 0.19 0.19
t 0 1 2 3
(1+g)^{t} 1 1.19 1.42 1.69
ROE-r_{e} 0.12 0.12 0.12 0.12
RI_{t} 120 142.80 196.93 202.22

表二:公式法计算多期剩余收益

        对比表一会发现通过净盈余关系计算出的剩余收益和公式法计算出的剩余收益竟然是一模一样的!

        当然是一模一样的,它们本质上只是对公式进行了数学恒等变形,不一样那不是活见鬼了。

2.3 剩余收益的折现

        说完如何计算,下面就该谈估值最重要的步骤——折现。一些基础的折现理念,例如阶段折现方式,可持续因子的运用笔者下面就不做深入解释了,需要了解原理的可以点下面链接看笔者往期讲解增速g的测算,H-model,可持续因子及周期因子

        首先对剩余收益来说,最基础的一个折现式子是:

Value_{0} = BV_{0} +\sum_{i=1}^{n}\frac{RI_{i}}{(1+r_{i})^{n}}

        将未来所有的剩余收益预测出来,乖乖按照即期利率折现,最后得到公司内在价值。这种方式比较一板一眼,笔者就不做讨论了。不过这里也可以得到一个结论:从之前的PB指标推导的几个结论可以知道,当ROE一直大于股东机会成本,未来的剩余收益是大于0的。因此对股东们来说,公司的价值会大于净资产的账面价值(Value>BV)。

        下面笔者再讨论几种阶段折现的方式。

2.3.1 PB指标与单阶段折现

        将基础公式中未来现金流加总部分写成戈登增长模型,但与以前的股利折现不同,剩余收益的分子变下形是可以与PB指标联系起来的:

V_{0} =BV_{0}+ \frac{RI_{1}}{r_{e}-g} = BV_{0} +\frac{BV_{0}\times (ROE-r_{e})}{r_{e}-g}

        化简一下,最后一个部分其实就基本面调整的PB指标乘以BV:

\frac{BV_{0}\times (r_{e}-g)}{r_{e}-g}+\frac{BV_{0}\times(ROE-r_{e})}{r_{e}-g}=\frac{BV_{0}\times (ROE - g)}{r_{e}-g}=BV_{0}\times PB

        即:

V_{0}=BV_{0}\times PB\, \, [10]

        [10]式推出来不是闹着玩吗?本身PB就是价格除以净资产账面价值,现在再乘一个净资产得到价格。笔者想说的是,这个式子在未来终值估计上会更有用。不过用这个式子的其中几个前提是ROE不变,净利润增速,净资产增速和剩余收益增速不变。这在实务中其实是不可能出现的,所谓剩余收益是公司为股东所创造的经济价值,随着行业走向衰退,很难说一个企业会永续的以恒定增速为股东创造效益。

2.3.2 PB指标与多阶段折现

        虽然单阶段是很难实现的,但上面的单阶段推导给了一个灵感——知道未来的PB就可以推导出未来的远端现金流的终值(terminal value)。还是之前的例子,前面表一已经将前四期RI都推算了出来,现在结合PB指标计算第五期的终值:

V_{5} = PB_{5}\times BV_{5}        

        接下来就简单了,将每一期的RI进行折现,但需要注意的是V_{5}中是包含净资产账面价值的,需要减去BV才是未来RI的增量。

V_{5} -BV_{5}= \sum_{i=5}^{n} \frac{RI_{i}}{(1+r_{e})^{i}}

        因此:

V_{0}=BV_{0}+\sum_{i=1}^{4} \frac{RI_{i}}{(1+r_{i})^{i}}+\frac{PB_{5}\times BV_{5}-BV_{5}}{(1+r)^{5}}

 图二:远端现金流终值计算

        但这个计算问题在于如何估测5年后的PB水平。例如,长期来看均值回归使得5年后PB指标回到行业平均水平,以行业平均进行估测。或者一个公司由于行业发展程度,市场竞争等因素,从长期来看PB趋向于1,即第五期终值等于0,那么该公司当期的内在价值即为当期净资产加上未来四期的剩余收益折现。

2.3.3 可持续因子折现

        除了利用PB指标外,还有另一种方法计算终值。回到RI的戈登增长折现式:

   V_{0} =BV_{0}+ \frac{RI_{1}}{r_{e}-g}

        仔细想想这个式子其实是有问题的,传统意义上的戈登增长模型是假设现金流以g的速度增长到无穷远期。但对于剩余收益来说,剩余收益永续增长这样的假定太过苛刻,没有那个企业可以保证自己的账面价值永续增长到无穷期,这样的假设太过恐怖了。因此往往不是假设RI永续增长,而是持续下跌。于是就有了带可持续因子的公式[11]:

V_{0} =BV_{0}+ \frac{RI_{1}}{1+r_{e}+\omega }\, \, [11]

        关于可持续因子原理就不展开讲了,需要了解的看笔增速g那期文章。

3 模型实现

         首先是电子表格建模,就是利用Excel。其实很多分析师都有自己的估值模板,输入相关参数就直接出结果了。虽然一些简单的折现模型用电子表格建模还是挺方便的,也很直观。不过笔者还是会自己写写代码,一来可以批量跑很多家公司,二来可以内嵌一些更复杂的功能模块,对于庞大的数据处理来说电子表格建模就显得有心无力了。下面笔者以上证某公司为例简单实现一个带有可持续因子的剩余收益估值模型。

code = "" 公司代码

3.1 代码实现

        数据方面笔者选择了Tushare金融大数据平台API,首先导入相关模块,实例化tushare接口:

import tushare as ts
import numpy as np
import pandas as pd

pro = ts.pro_api("token") # 输入自己的密钥

        1):净利润及净资产

        公司方面使用的是财务报表预测那期的目标公司,一来可以直接拿那期的结果来用,二来可以省略很多分析过程。所需要使用的财务数据为2021年年报数据以及2022年预测数据。 这部分代码很多,也不是本期重点就不放了, 文章传送门:财务报表建模——利润表

        净利润预测得到的结果:¥27145022057:

def financial_mod():

    return NI

NI = financial_mod()

        净资产账面价值,直接获取当期的财报数据,得到数值为1200多亿:

bv = pro.balancesheet(ts_code=code, period='20211231', fields='total_hldr_eqy_inc_min_int')['total_hldr_eqy_inc_min_int'][0]

print(bv)
# 124868124000.0

        2):折现率

        下面需要知道折现率r, 可以利用CAPM模型计算折现率:

def CAPM_mod():
    
    return r

r = CAPM_mod()

CAPM结果(%): 8.2916 R-square: 0.5092

        当然,也可以内嵌更复杂的模型。笔者利用PSM模型计算,代码也比较多,不放了,感兴趣的可以看笔者折现率r那期内容:浅谈估值模型:回报率r的进阶玩法。模型给出的折现率为12.33%,四个因子均显著,模型解释力近70%,可以说PSM非常适合这家公司:

def PSM_mod():

    return r

r = PSM_mod() 

                                 GLS Regression Results                                
=======================================================================================
Dep. Variable:                     RP   R-squared (uncentered):                   0.697
Model:                            GLS   Adj. R-squared (uncentered):              0.696
Method:                 Least Squares   F-statistic:                              1126.
                                                  
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
RM             1.5858      0.027     58.901      0.000       1.533       1.639
SMB          -49.1681      2.449    -20.075      0.000     -53.971     -44.365
HML           54.8740      3.008     18.244      0.000      48.975      60.773
LIQ          -17.2345      0.881    -19.559      0.000     -18.963     -15.506
==============================================================================
Omnibus:                      260.134   Durbin-Watson:                   0.087
Prob(Omnibus):                  0.000   Jarque-Bera (JB):              883.215
Skew:                           0.645   Prob(JB):                    1.63e-192
Kurtosis:                       6.022   Cond. No.                         161.
==============================================================================

PSM结果(%): 12.3287 Adj R: 0.6962

        3):折现模块

        数据都拿到之后按照前面推导的可持续因子折现公式写个模块就完成了:

def RI_persistent_mod(BV_0, NI_1, r, w): 
    RI = NI_1 - BV_0 * r
    v = BV_0 + RI/(1 + r - w)
    return v
# BV_0:当期净资产
# NI_1:下期净利润
# r:折现率
# w:可持续因子

        将之前的参数传入模块,除以个股数计算每股股价即可。最后结果为¥28:

total_share = pro.daily_basic(ts_code=code, trade_date='20211231', fields='total_share')["total_share"][0]*10000
print(RI_persistent_mod(bv, ni, r, 0.95)/total_share)

# 27.99467127080234

        上面的代码看着简单,因为很多模块都是现成的,以前也做过很多铺垫了,笔者认为这是水到渠成的事情。

3.2 敏感性分析

        有了封装好的模块,敏感性分析,情景分析,压力测试就都可以做了。下面以可持续因子的敏感性分析为例,给定w的阈值从0到1,将结果 输出到图表上:

import matplotlib.pyplot as plt

values = []
w_lst = []
for i in range(100):
    w = 1-i/100
    price = RI_persistent_mod(bv, ni, r, w)/total_share
    values.append(price)
    w_lst.append(w)

plt.plot(w_lst, values)
plt.show()

 图三:可持续因子敏感性分析

        简单说一说吧,仅作举例。从敏感性分析可以看出,w取[0,1]时,该公司的价值区间为¥21到¥32。该价值曲线呈现凸性,即w降时,w的降低对价值影响不断边际降低;当w较高时,w的变化对估值影响较大,即价格到26甚至更高时,例如财报不及预期,产品出现质量丑闻等一些小小的基本面瑕疵,都非常有可能引发估值水平的较的回调。当然,以上结论仅仅只针对可持续因子一个变量,实际需要结合其它变量做更复杂的分析,不是本期重点,仅作举例就不继续分析了。

4. 总结

       简单总结一下剩余收益的优点吧:

        1):在折现公式中不难发现,占价值大头的是当期净资产账面价值,未来的剩余收益毕竟只占较小一部分。因此剩余收益对终值的敏感度很低,而账面价值的数据是直接可以从财报拿到的,提高了估值的准确性;2):剩余收益体现了公司为股东创造的经济价值;3):对于不分红的公司或现金流为负数的公司,剩余收益是不错的估值方式;

        当然,缺点也是有的:

        1):过度依赖账面价值进行估值,对于报表不能如实反应资产价值的情况下,剩余收益估出来的价值很可能是有偏的;2):没有考虑到公司表外项目,例如人才资本,特殊目的实体等。当然,分析师可以对报表进行调整,但需要做大量的工作。3):剩余收益的多期推导严重依赖财务及其报表勾稽关系,例如净剩余关系成立;

        剩余收益的公式是比较多的,比起公式的推导笔者认为更重要的还是理解背后的经济含义。

5. 往期精选

往期精选
系列 文章传送门 实现方式
基本面分析 实现GGM的理想国 Python
剩余收益估值(本期) Python
Fama-French及PSM Python
增速g的测算 Python
PE指标平滑 Python
PE Band Python
技术分析 分类树算法 R
蒙特卡洛模拟 Python
全连接神经网络模型 Python
组合管理 券商金股哪家强——信息比率 Python
从指数构建原理看待A股的三千点魔咒 Python
决策树学习基金持仓并识别公司风格类型 R
杂谈类 垃圾公司对回报率计算的影响几何 Python
市场风险分析 Python
金融危机模拟 Python
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/simon1223z/article/details/128759936

智能推荐

vue引入原生高德地图_前端引入原生地图-程序员宅基地

文章浏览阅读556次,点赞2次,收藏3次。由于工作上的需要,今天捣鼓了半天高德地图。如果定制化开发需求不太高的话,可以用vue-amap,这个我就不多说了,详细就看官网 https://elemefe.github.io/vue-amap/#/zh-cn/introduction/install然而我们公司需要英文版的高德,我看vue-amap中好像没有这方面的配置,而且还有一些其他的定制化开发需求,然后就只用原生的高德。其实原生的引入也不复杂,但是有几个坑要填一下。1. index.html注意,引入的高德js一定要放在头部而_前端引入原生地图

ViewGroup重写大法 (一)-程序员宅基地

文章浏览阅读104次。本文介绍ViewGroup重写,我们所熟知的LinearLayout,RelativeLayout,FrameLayout等等,所有的容器类都是ViewGroup的子类,ViewGroup又继承View。我们在熟练应用这些现成的系统布局的时候可能有时候就不能满足我们自己的需求了,这是我们就要自己重写一个容器来实现效果。ViewGroup重写可以达到各种效果,下面写一个简单的重写一个Vi..._viewgroup 重写

Stm32学习笔记,3万字超详细_stm32笔记-程序员宅基地

文章浏览阅读1.8w次,点赞279次,收藏1.5k次。本文章主要记录本人在学习stm32过程中的笔记,也插入了不少的例程代码,方便到时候CV。绝大多数内容为本人手写,小部分来自stm32官方的中文参考手册以及网上其他文章;代码部分大多来自江科大和正点原子的例程,注释是我自己添加;配图来自江科大/正点原子/中文参考手册。笔记内容都是平时自己一点点添加,不知不觉都已经这么长了。其实每一个标题其实都可以发一篇,但是这样搞太琐碎了,所以还是就这样吧。_stm32笔记

CTS(13)---CTS 测试之Media相关测试failed 小结(一)_mediacodec框架 cts-程序员宅基地

文章浏览阅读1.8k次。Android o CTS 测试之Media相关测试failed 小结(一)CTSCTS 即兼容性测试套件,CTS 在桌面设备上运行,并直接在连接的设备或模拟器上执行测试用例。CTS 是一套单元测试,旨在集成到工程师构建设备的日常工作流程(例如通过连续构建系统)中。其目的是尽早发现不兼容性,并确保软件在整个开发过程中保持兼容性。CTS 是一个自动化测试工具,其中包括两个主要软件组件:CTS tra..._mediacodec框架 cts

chosen.js插件使用,回显,动态添加选项-程序员宅基地

文章浏览阅读4.5k次。官网:https://harvesthq.github.io/chosen/实例化$(".chosen-select").chosen({disable_search_threshold: 10});赋值var optValue = $(".chosen-select").val();回显1.设置回显的值$(".chosen-select").val(“opt1”);2.触发cho..._chosen.js

C++ uint8_t数据串如何按位写入_unit8_t 集合 赋值 c++-程序员宅基地

文章浏览阅读1.9k次。撸码不易,网上找不到,索性自己写,且撸且珍惜!void bitsWrite(uint8_t* buff, int pos, int size, uint32_t value){ uint32_t index[] = { 0x80000000, 0x40000000, 0x20000000, 0x10000000, 0x8000000, 0x4000000, 0x2000000, 0x1000000, 0x800000, 0x400000, 0_unit8_t 集合 赋值 c++

随便推点

Javaweb框架 思维导图_javaweb框架图-程序员宅基地

文章浏览阅读748次。javaweb知识点_javaweb框架图

adb的升级与版本更新_adb iptabls怎么升级-程序员宅基地

文章浏览阅读1.1w次,点赞3次,收藏16次。adb是没有自动升级的命令的,如果想要更新adb的版本,我们可以在网上找到自己想要的版本进行更新给大家提供几个版本https://pan.baidu.com/s/1yd0dsmWn5CK08MlyuubR7g&shfl=shareset 提取码: 94z81、下载解压后我们可以找到下面几个文件,并复制2、找到adb安装的文件夹下的platform-tools文件夹,我这里是..._adb iptabls怎么升级

微信苹果版删除所有的聊天记录的图文教程_mac微信怎么删除聊天列表-程序员宅基地

文章浏览阅读3.8k次。很多用户可能都知道怎么在Windows系统上删除微信的聊天记录,那么苹果电脑上的微信软件怎么删除所有的聊天记录呢?下面小编就专门来给大家讲下微信mac版删除所有的聊天记录的图文教程。点击后会弹出提示窗口,点击这里的确认按钮就可以将其清理掉了。在这里选择要清理的数据,然后点击下方右边的清理按钮就行了。在mac上打开微信后,点击左下角的横线图标。然后再点击这里的管理微信聊天数据按钮。打开了设置窗口,点击上方的“通用”。在这里点击下方的前往清理按钮。点击弹出菜单里的“设置”。_mac微信怎么删除聊天列表

【报错笔记】数据类型转换时报错:Request processing failed;nested exception is java.lang.NumberFormatException:..._request processing failed; nested exception is jav-程序员宅基地

文章浏览阅读7.7k次。数据类型转换时报错:Request processing failed;nested exception is java.lang.NumberFormatException:For input String “20151512345”报错原因:数字格式异常,接着后面有 For input string: “201515612343” 提示,这就告诉我们你当前想把 “201515612343” 转换成数字类型时出错了。解决方案:使用2015151612343这个数字太大了,所以直接使用string_request processing failed; nested exception is java.lang.numberformatexcepti

qml 自定义消息框_Qt qml 自定义消息提示框-程序员宅基地

文章浏览阅读387次。版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/a844651990/article/details/78376767Qt qml 自定义消息提示框QtQuick有提供比较传统的信息提示框MessageDialog,但是实际开发过程并不太能满足我们的需求。下面是根据controls2模块中..._qml 自定义 messagedialog

Redis.conf 默认出厂内容_默认出厂的原始redis.conf文件全部内容-程序员宅基地

文章浏览阅读599次。# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf # Note on units: when memory size is needed, it is pos._默认出厂的原始redis.conf文件全部内容

推荐文章

热门文章

相关标签