小编jer*_*ean的帖子

如何在 Go 中检查字符串是全部大写还是小写?

在 Golang 中检查字符串中的所有字符是大写还是小写的一种简单方法是什么?

另外,如何处理字符串有标点符号的情况?

请参阅以下示例:

package main

import (
    "fmt"
    "unicode"
)

func main() {
    s := "UPPERCASE"
    fmt.Println(s.IsUpper())  // Should print true

    s = "lowercase"
    fmt.Println(s.IsUpper())  // Should print false

    s = "lowercase"
    fmt.Println(s.IsLower())  // Should print true

    s = "I'M YELLING AT YOU!"
    fmt.Println(s.IsUpper())  // Should print true
}
Run Code Online (Sandbox Code Playgroud)

注意: s.IsUpper() 和 s.IsLower() 并不真正存在,但最好能找到等价物。

string lowercase go uppercase

10
推荐指数
2
解决办法
9545
查看次数

由于 CNI 插件未初始化,Kubernetes 工作节点未就绪

我正在kind本地 Macbook 上运行测试 kubernetes 集群。

我发现其中一个节点的状态为NotReady

$ kind get clusters                                                                                                                                                                 
mc

$ kubernetes get nodes
NAME                STATUS     ROLES    AGE     VERSION
mc-control-plane    Ready      master   4h42m   v1.18.2
mc-control-plane2   Ready      master   4h41m   v1.18.2
mc-control-plane3   Ready      master   4h40m   v1.18.2
mc-worker           NotReady   <none>   4h40m   v1.18.2
mc-worker2          Ready      <none>   4h40m   v1.18.2
mc-worker3          Ready      <none>   4h40m   v1.18.2
Run Code Online (Sandbox Code Playgroud)

唯一有趣的kubectl describe node mc-worker是 CNI 插件未初始化:

Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Tue, 11 Aug …
Run Code Online (Sandbox Code Playgroud)

kubernetes cni kind

10
推荐指数
1
解决办法
4万
查看次数

在unittest中使用assertTrue(==)vs assertEqual

在Python unittest模块中,在以下情况下使用assertTrue()vs. 是否有任何优点或缺点assertEqual()

self.assertTrue(a == b)
self.assertEqual(a, b)
Run Code Online (Sandbox Code Playgroud)

python unit-testing python-unittest

8
推荐指数
1
解决办法
3121
查看次数

kubernetes:如何查看或列出已安装的 CNI 插件?

假设我刚刚安装了 Kubernetes CNI 插件之一,例如:

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
Run Code Online (Sandbox Code Playgroud)

我可以查看或列出已安装的 CNI 插件吗?

安装后我怎么知道它的运行?或者如果我 'kubectl delete' 插件我怎么知道它被删除了?

安装插件后,我有点希望看到为这个插件创建的一些对象。这样如果我想删除它,那么我就不必记住我用来安装的确切 URL,我可以查找对象名称并删除它。

kubernetes kubectl cni

5
推荐指数
1
解决办法
4072
查看次数

Python 的 os stat 返回错误的 inode 值

我正在运行 CentOS Linux。

我使用专有文件系统创建如下目录:

$ mkdir fooDir
Run Code Online (Sandbox Code Playgroud)

首先,我使用“ls -ldi”检查 inode 值:

$ ls -ldi
total 4
9223372036854783200 drwxrwxrwx 2 root root 4096 Jan  6 20:58 fooDir
Run Code Online (Sandbox Code Playgroud)

然后,我确认'stat'正在报告相同的inode:

$ stat /fooDir
  File: `/fooDir'
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 14h/20d Inode: 9223372036854783200  Links: 2
Access: (0777/drwxrwxrwx)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-01-06 20:58:13.000000000 +0000
Modify: 2016-01-06 20:58:13.000000000 +0000
Change: 2016-01-06 20:58:23.000000000 +0000
Run Code Online (Sandbox Code Playgroud)

但随后我切换到在 python 的交互式提示中运行并针对目录运行 om.stat:

$ python
Python 2.6.6 (r266:84292, Jun 18 2012, …
Run Code Online (Sandbox Code Playgroud)

python linux filesystems inode stat

4
推荐指数
1
解决办法
807
查看次数

Python:寻找一种为大量变量设置setter/getters的简便方法

我有一个类(Bar)嵌入在另一个类(Foo)中.

class Foo():
    class Bar():
        def __init__(self):
            self.a = 1
            self.b = 2
            ...
            self.z = 26


    def __init__(self):        
        self.bar = Bar()
Run Code Online (Sandbox Code Playgroud)

要访问类Bar的属性,用户需要执行以下操作:

>>> f = Foo()
>>> f.bar.a
1
Run Code Online (Sandbox Code Playgroud)

如何设置短点表示法以便用户可以同时使用:

>>> f.bar.a
1
Run Code Online (Sandbox Code Playgroud)

>>> f.a
1
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我试图证明Bar类有很多变量.所以我不想手动为每个人编写一个getter/setter.所以我想在这样的for循环中使用property():

def __init__(self):
    self.bar = Bar()

    # Allow shorter dot notation
    for parm in self.bar.__dict__:
         setattr(self, i, getattr(bar, i))
         self.i = property(...)
Run Code Online (Sandbox Code Playgroud)

但我不确定如何在此上下文中使用属性而无需手动编写多个setter函数.

有关如何允许访问更短和更长记号的任何建议?

python python-2.7 data-structures

4
推荐指数
1
解决办法
77
查看次数

使用 gcloud 和 kubectl 切换 GCP 帐户和上下文不起作用

我有 2 个 gmail 帐户,每个帐户与 2 个单独的 GCP 帐户相关联。为了从命令行切换帐户,过去两周左右我一直在使用这两个命令:

$ gcloud config configurations activate ACCT_NAME
$ kubectl config set-context CONTEXT
Run Code Online (Sandbox Code Playgroud)

注意:我也一直在使用“kubectx”,它比使用“kubectl config set-context”更容易切换上下文;基本上它的打字少了一点。'kubectl config set-context' 和 'kubect' 过去都工作过(我认为)。

直到今天早上,这种方法似乎一直运行良好。我尝试从上下文 A 切换到上下文 B,但现在我收到如下错误:

$ kubectl get pods -A                                             
Error from server (Forbidden): pods is forbidden: User "<my_email_address>" cannot list resource "pods" in API group "" at the cluster scope: Required "container.pods.list" permission.
Run Code Online (Sandbox Code Playgroud)

显示的电子邮件地址用于上下文 A,而不是上下文 B。我检查了以下命令以验证当前(或活动)上下文和电子邮件帐户是否正确:

$ kubectl config current-context
$ gcloud config configurations list
Run Code Online (Sandbox Code Playgroud)

所以当前的上下文、帐户和关联的电子邮件地址是正确的。我不清楚为什么 kubectl 仍在尝试使用来自上下文 A(而不是上下文 B)的电子邮件帐户访问 GKE。

有什么想法吗?

google-cloud-platform gcloud google-kubernetes-engine kubectl

4
推荐指数
1
解决办法
1173
查看次数

在 docker 容器内运行的 Python 程序依赖于“uname -r”

我有一个Python 程序,它被设计为仅在某些Linux 发行版(即CentOS、Ubuntu 等)中运行。我想让它在 CentOS7 容器内运行,但它失败了,因为以下返回“4.9.49-moby”:

import platform
platform.release()
Run Code Online (Sandbox Code Playgroud)

该程序期望找到 Linux 内核版本,即“3.10.0-327.el7.x86_64”。

假设我无法修改程序的源代码。

我可以做哪些事情来解决这个问题?

我尝试围绕“uname -r”编写一个包装脚本来返回我想要的内容。但这并没有帮助,因为显然 Python 是直接从内核获取它的。

python linux containers uname docker

0
推荐指数
1
解决办法
1135
查看次数