小编Sie*_*ski的帖子

@staticmethod或类外的功能?

假设我有一个class需要一个函数(或者我应该说方法),它是:

  • 独立于我的class实例 - 不需要self论证;
  • 仅在我的class对象内部被调用
  • 我不需要在任何时候访问它(例如,覆盖它);

我应该(A)把它放在里面class并将其标记为a @staticmethod或者我应该(B)在我的class对象之外定义它(但是在相同的命名空间中)?为什么?

例:

class A:
    def __init__(self, my_int):
        self.my_int = my_int
    def my_int_and_4(self):
        print(self.adder(self.my_int,4))
    @staticmethod
    def adder(a,b):
        return a+b
Run Code Online (Sandbox Code Playgroud)

要么

def adder(a,b):
    return a+b
class B:
    def __init__(self, my_int):
        self.my_int = my_int
    def my_int_and_4(self):
        print(adder(self.my_int,4))
Run Code Online (Sandbox Code Playgroud)

编辑:也许这个例子有点过于简单.我应该补充一点,我的版本" adder"特别适用于我class和其他情况.

python python-3.x

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

shinyproxy基础知识(+一些一般的网络知识)

问题

在寻找部署闪亮应用程序的方法时,我偶然发现了ShinyProxy.根据我的理解,它是ShinyServer的替代.但是,我缺乏一些(非常基本的)知识来遵循所提供的指南.

问题

  1. 可以在任何购买/租用的服务器上安装ShinyProxy吗?我需要预先安装其他一些软件吗?
  2. 在哪里输入ShinyProxy 指南中提供的命令?
  3. Docker是否需要安装在服务器上,还是部署到服务器的工具,因此在本地安装?
  4. ShinyProxy 指南错过了关于安装ShinyProxy的观点.为什么?它没有安装(或安装如此明显)?
  5. 我实际上找不到有关如何使用ShinyProxy运行闪亮应用程序的说明.

web shiny shiny-server shinyproxy

9
推荐指数
1
解决办法
1646
查看次数

Shinybs `options` 参数用法

问题

我开始使用shinybs它非常适合在 Shinyapps 中显示弹出窗口或工具提示。但是,在定制方面,我发现软件包提供的帮助有点缺乏。

这个包中的大多数函数都包含options允许“更好地控制工具提示和弹出框的显示方式”的参数。帮助文件只说明了这个参数的用法是它接受list(),您应该查看Twitter Bootstrap 3 文档以获取更多详细信息。然而,这个文档非常强大,我几乎立即迷路了。

问题

使用optionsin的基本逻辑是什么shinybs- 你如何确定传递给什么值和什么形式options?它是否使用CSS, JavaScript, 或其他东西?

您能否提供一些有关如何在shinybsusingoptions参数中自定义弹出窗口和工具提示的基本示例?例如:改变高度、宽度、背景颜色等。

r twitter-bootstrap shiny shinybs

6
推荐指数
0
解决办法
1015
查看次数

LuaSocket 服务器:accept() 超时 (TCP)

问题

LuaSocket 介绍之后,我设法让服务器运行。我还设法从客户端连接。但是,我注意到服务器脚本会冻结,直到server:accept()获得连接。

研究

LuaSocket 参考指定:

使用 settimeout 方法或 accept 可能会阻塞,直到另一个客户端出现。

这甚至包含在示例代码中。但是,client:settimeout(10)在之后调用,local client = server:accept()因此脚本在到达此点之前被阻止。

我读到这可以通过多线程解决,但这似乎有点夸张。

问题

  1. 您如何使服务器脚本停止等待连接并继续前进?
  2. 我如何防止client:receive()(服务器端)和tcp:receive()(客户端)出现类似问题(或client:settimeout(10)处理这些问题)?

代码

服务器(来自LuaSocket 介绍

-- load namespace
local socket = require("socket")
-- create a TCP socket and bind it to the local host, at any port
local server = assert(socket.bind("*", 0))
-- find out which port the OS chose for us
local ip, port = …
Run Code Online (Sandbox Code Playgroud)

lua luasocket

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

随机生成1或-1(正或负整数)

我想生成1或-1 Python作为在非负数和非正数之间随机化或随机更改已经存在的整数的符号的步骤。生成1或-1 in的最佳方法是Python什么?假设分布均匀,我知道我可以使用:

import random

#method1
my_number = random.choice((-1, 1))

#method2
my_number = (-1)**random.randrange(2)

#method3
# if I understand correctly random.random() should never return exactly 1
# so I use "<", not "<="
if random.random() < 0.5:
    my_number = 1
else:
    my_number = -1

#method4
my_number = random.randint(0,1)*2-1
Run Code Online (Sandbox Code Playgroud)

使用timeit模块,我得到以下结果:

#method1
s = "my_number = random.choice((-1, 1))"
timeit.timeit(stmt = s, setup = "import random")
>2.814896769857569
#method2
s = "my_number = (-1)**random.randrange(2)"
timeit.timeit(stmt = s, setup = …
Run Code Online (Sandbox Code Playgroud)

python random

5
推荐指数
4
解决办法
9981
查看次数

if 语句摆脱: if 中的错误:参数长度为零

这个想法

根据selectizeInput()输入,我想显示数据框中的一行数据。但是,某些变量只有在其值不是 时才会显示FALSEselectizeInput()包括一个占位符提示,这是非常理想的。

问题

我开发的代码实际上可以工作,但是直到选择任何选项为止

if 中的错误:参数长度为零

在应用程序内部,这是非常不可取的。

示例代码

library("shiny")

# simulate data
data <- data.frame(
  name = c("Adam", "Debbie", "Lancelot", "Dracula"),
  age = c(21, 48, 72, 1023),
  coward = c("yes, a coward", "just a little bit", FALSE, "too old to be a coward")
)

ui <- fluidPage(
  # selectize
  selectizeInput(
    inputId = "input",
    label = NULL,
    choices = c("..." = "", as.character(data[, "name"])),
    selected = NULL,
    multiple = FALSE
  ),
  # show output …
Run Code Online (Sandbox Code Playgroud)

r shiny

3
推荐指数
2
解决办法
1万
查看次数

使用带有dict的'with'来指定值

鉴于一个强大的dictsub dict/ lists/tuples应该不能使用with语句为新名称赋值?

我的意思是:

# a dictionary with a complicated structure
d = {
    'names': ['Mark', 'Matteo', 'John'],
    'options': (1, 2),
    'sumting': { 'wong': [], 'etc': 'etc', 'habababa': 1 }
    }
# try to access some deeply hidden structure and
# pick to assign something to new names
with d['sumting'] as temp:
    new_name1 = temp['wong']
    new_name2 = temp['etc']
Run Code Online (Sandbox Code Playgroud)

这会产生:

>Traceback (most recent call last):
>  File "<pyshell>", line 1, in <module>
>AttributeError: …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

-2
推荐指数
1
解决办法
173
查看次数