鍍金池/ 問答
浪蕩不羈 回答

一個series只允許設(shè)置一個barWidth。
如果一定要區(qū)分對待每根柱子,那就把每根柱子的data都單獨(dú)放到一個series里去,然后每個series設(shè)置不同的barWidth,再利用barGap: "-100%"讓每根柱子居中。

series : [
    {
        name:'直接訪問',
        type:'bar',
        barWidth: "20%",
        data:[10, "52", "", "", "", "", ""]
    },
    {
        name:'直接訪問',
        type:'bar',
        barWidth: "50%",
        data:["", "", 200, 334, 390, "", ""]
    },
    {
        name:'直接訪問',
        type:'bar',
        barWidth: "70%",
        barGap:"-100%",
        data:["", "", "", "", "", 330, 220]
    }
]

clipboard.png

但就是有個問題,柱子寬度不同的時候,有些柱子不會完全居中,應(yīng)該是echarts的barGap算法只看最后一根柱子的寬度來算的,這個感覺不是太友好,要是所有柱子都能居中就perfect了

尐懶貓 回答

如果只是想完全退出子進(jìn)程,可以使用 psutil:

import subprocess
import psutil

def kill(proc_pid):
    process = psutil.Process(proc_pid)
    for proc in process.children(recursive=True):
        proc.kill()
    process.kill()

proc = subprocess.Popen(["infinite_app", "param"], shell=True)
try:
    proc.wait(timeout=3)
except subprocess.TimeoutExpired:
    kill(proc.pid)

更多關(guān)于如何關(guān)閉 subprocess 進(jìn)程的信息,參考這里。
如果在命令執(zhí)行后還想在子進(jìn)程下繼續(xù)執(zhí)行一些命令,推薦使用 Popen.communicate()
不過要注意 communicate() 只能執(zhí)行一次,再次執(zhí)行就會有錯誤:
ValueError: Cannot send input after starting communication
所以想執(zhí)行多命令可以先把命令組合成一個,再傳進(jìn)去:

from subprocess import Popen, PIPE, STDOUT

process = Popen(["powershell"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
commands = ("python --version\n"
            "activate py34\n"
            "python --version\n")
            # 注意每條命令后的新行符 \n
outs, errs = process.communicate(commands.encode("utf-8"))
content = [z.strip() for z in outs.decode("utf-8").split("\n") if z]
print(*content, sep="\n")

輸出內(nèi)容:

Windows PowerShell
Copyright (C) 2016 Microsoft Corporation. All rights reserved.

PS E:\Program\My Code> python --version
Python 3.6.2 :: Anaconda, Inc.
PS E:\Program\My Code> activate py34
Activating environment "py34..."
[py34] PS E:\Program\My Code> python --version
Python 3.4.5 :: Continuum Analytics, Inc.
[py34] PS E:\Program\My Code>

其實(shí)還可以用 Popen.stdin.write(),但這是 Python 文檔里不推薦的,因?yàn)楹苋菀讓?dǎo)致死鎖:

process = Popen(["powershell"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
commands = [
    "python --version",
    "activate py34",
    "python --version"
]
for cmd in commands:
    process.stdin.write((cmd + "\n").encode("utf-8"))
    process.stdin.flush()
for line in iter(process.stdout.readline, ""):
    print(line.strip().decode("utf-8"))

輸出類似如上。

傻叼 回答

可以寫一個action重置state,每次用戶登錄的時候觸發(fā)這個action。

枕邊人 回答

樓上說的沒錯。 我具體說一下吧。

git 鈎子有很多,你說的這種需要在git pull 之後執(zhí)行action(發(fā)送信息),
那麼只需要在對應(yīng)的鈎子 post-merge中寫發(fā)送信息的代碼即可。

關(guān)於鈎子的詳細(xì)信息,請查看: https://www.git-scm.com/book/...

自己解決了
改成了@"C:\Users\liux\AppData\Local\Yarn\Data\global\node_modules\.bin\vue.cmd" %*
不知道為什么yarn自動生成的鏈接會報(bào)這種錯

赱丅呿 回答

要拖動的元素,寬高固定。你固定的是TABLE的樣式,不會繼承到table的子元素里。

凝雅 回答

Python的字典和集合都是基于散列表技術(shù)實(shí)現(xiàn)的。
我試驗(yàn)了一下。根據(jù)結(jié)果,我猜測:
創(chuàng)建集合,當(dāng)元素個數(shù)不多于32時,散列函數(shù)為key mod 32(得數(shù)作為散列地址),然后采用開地址法消解沖突。。。。因此,只要數(shù)字小于32都會是有序的。。
——分割線——
初始的散列表長度為32,當(dāng)負(fù)載因子超過2/3即元素個數(shù)超過20個時自動更換更大的散列表,這里我試了下,長度會擴(kuò)充到128,而散列函數(shù)好像都是key mod n,這里的n為散列表長度。

別傷我 回答

可能是和全局樣式?jīng)_突了,你用開發(fā)者工具看看控件上面的樣式有沒有被覆蓋

已經(jīng)解決問題。1.withTheme()()實(shí)際是一個嵌套的函數(shù),第一次使用withTheme()生成一個函數(shù),再次使用withTheme()(MyComponent)生成一個MyComponent組件。
2.withTheme()(MyComponent)只是一個定義,后面的箭頭表示得到的返回值是一個component組件,并不是一個箭頭函數(shù)...

幼梔 回答

圖片有多大,可能是第一次下載很慢,后面有緩存了就好了

久愛她 回答

問題不夠清楚。

考慮有否有必要拷貝。stream 直接傳就是,只是使用它并不會使數(shù)據(jù)變化。

鐧簞噯 回答

以每行第九列排序

1.為什么結(jié)果是 0,1

兩個點(diǎn)。
1.var x = y = 1 等價(jià)于 var x; x = y = 1
即跳過了y的聲明,直接創(chuàng)建了全局變量y
2.console.log(x,y)訪問的x,y都是全局變量,答案就很明顯了

2.代碼注釋為什么說“x在函數(shù)內(nèi)部聲明,y不是!”

原因見上個回答第一點(diǎn)

3.什么樣的算是隱式聲明的全局變量

除去宿主環(huán)境本身的變量,其他所有未經(jīng)var/let/const創(chuàng)建的全局變量都是“隱式聲明的全局變量”

問:為什么a is not defined

還是見第一個回答的第一條,a是函數(shù)f的局部變量,無法在局部作用域外部訪問

她愚我 回答

如果你直接通過httpclient的方式的話,那么你只能拿到一次正常的http請求返回的數(shù)據(jù)內(nèi)容,其中的js是不會執(zhí)行的,就像使用linux 的curl命令返回的內(nèi)容一樣

當(dāng)然你可以通過一個無頭瀏覽器在后臺渲染的方式,來得到ajax請求數(shù)據(jù)后渲染成的html頁面結(jié)構(gòu)內(nèi)容。例如 puppeter,也可以通過前臺可見的渲染方式來獲取數(shù)據(jù),例如electron

老梗 回答
  1. 這還算深么。。如果user,topic里有重名字段怎么辦?還有就是comments這種數(shù)組期望的結(jié)果是什么?
  2. 如果1中的問題都已經(jīng)想好了,那也可以,想要扁平部分用attributessequelize.literal,想要結(jié)構(gòu)部分用include。
  3. 其實(shí)查詢出來再格式化數(shù)據(jù)會好很多。
笨尐豬 回答

PHPDoc的配置里倒有 Align tag comments

圖片描述

還有 isset 的三元運(yùn)算可以寫成 ?? 了啊(PHP7)?

不歸路 回答

cteateElement 的時候就應(yīng)該把 children 準(zhǔn)備好了
所以應(yīng)該從子到父創(chuàng)建實(shí)例

需要2個遞歸

  • 第一個遞歸用來整理 json
  • 第二個用來創(chuàng)建實(shí)例

參考下面代碼:

class App extends React.Component {
  constructor() {
    super()
    this.badJson = [
      {id: 1, pid: 0, type: 'div'},
      {id: 2, pid: 1, type: 'ul'},
      {id: 3, pid: 2, type: 'li'},
      {id: 4, pid: 3, type: 'span'},
      {id: 5, pid: 0, type: 'div'}
    ]
  }

  handleJson(val, pid) {
    if (val.pid == pid) {
      const children = this.badJson.map(val2 => this.handleJson(val2, val.id)).filter(x => x)
      if (children.length) val.children = children
      return val
    }
  }

  createNodes({id, pid, children, type}) {
    return React.createElement(
      type || 'div',
      {key: id},
      children ? children.map(val => this.createNodes(val)) : id
    )
  }

  render() {
    // 處理 JSON
    const goodJson = this.badJson.map(val => this.handleJson(val, 0)).filter(x => x)

    return <div>{goodJson.map(val => this.createNodes(val))}</div>
  }
}
舊時光 回答

安裝PHP7版本的mysql擴(kuò)展即可,mac下擴(kuò)展的擴(kuò)展名以.so結(jié)尾,dll是win下的擴(kuò)展

愛礙唉 回答

npm install -g npm@5.3 ,然后再安裝webpack