我有一个Rails问题.
如何在控制器操作中获取控制器操作的名称?
例如,而不是
def create
logger.info("create")
end
Run Code Online (Sandbox Code Playgroud)
我想写点类似的东西
def create
logger.info(this_def_name)
end
Run Code Online (Sandbox Code Playgroud)
有什么方法可以获得this_def_name?
我想看看在python中使用数学库内置的是nCr(n选择r)函数:

我知道这可以编程,但我想我会先查看它是否已经内置.
此代码可以正常工作并向我发送电子邮件:
import smtplib
#SERVER = "localhost"
FROM = 'monty@python.com'
TO = ["jon@mycompany.com"] # must be a list
SUBJECT = "Hello!"
TEXT = "This message was sent with Python's smtplib."
# Prepare actual message
message = """\
From: %s
To: %s
Subject: %s
%s
""" % (FROM, ", ".join(TO), SUBJECT, TEXT)
# Send the mail
server = smtplib.SMTP('myserver')
server.sendmail(FROM, TO, message)
server.quit()
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将其包装在这样的函数中:
def sendMail(FROM,TO,SUBJECT,TEXT,SERVER):
import smtplib
"""this is some test documentation in the function"""
message = """\
From: %s
To: …Run Code Online (Sandbox Code Playgroud) 我想if(function_exists("my_func")) echo 'function exists';直接使用命令行执行单个php语句,而不必使用单独的php文件.
这怎么可能 ?
即使在不同的浏览器中,此代码也始终有效:
function fooCheck() {
alert(internalFoo()); // We are using internalFoo() here...
return internalFoo(); // And here, even though it has not been defined...
function internalFoo() { return true; } //...until here!
}
fooCheck();
Run Code Online (Sandbox Code Playgroud)
但是,我无法找到它应该起作用的单一参考.我第一次在John Resig的演示文稿中看到过这个,但它只是提到了.那里或其他任何地方都没有解释.
有人可以赐教吗?
功能注释:PEP-3107
我跑过一段代码,展示了Python3的功能注释.这个概念很简单,但我想不出为什么这些在Python3中实现或者对它们有任何好用.也许SO可以启发我吗?
这个怎么运作:
def foo(a: 'x', b: 5 + 6, c: list) -> max(2, 9):
... function body ...
Run Code Online (Sandbox Code Playgroud)
参数后面后面的所有内容都是"注释",后面的信息->是函数返回值的注释.
foo.func_annotations将返回一个字典:
{'a': 'x',
'b': 11,
'c': list,
'return': 9}
Run Code Online (Sandbox Code Playgroud)
有这个有什么意义?
我来自OOP背景并试图学习python.我使用的max函数使用lambda表达式返回列表中Player具有最大值的类型的实例.totalScoreplayers
def winner():
w = max(players, key=lambda p: p.totalScore)
Run Code Online (Sandbox Code Playgroud)
该函数正确返回Player具有最大值的类型的实例totalScore.我对以下三件事感到困惑:
max功能如何运作?它正在采取什么样的论据?我查看了文档,但没有理解.keymax函数中关键字的用途是什么?我知道它也用在sort功能的上下文中这些都是非常无趣的概念性问题,但会帮助我理解语言.如果您可以举例解释,这将有所帮助.谢谢
我正在编写一个bash脚本,我需要将包含空格的字符串传递给我的bash脚本中的函数.
例如:
#!/bin/bash
myFunction
{
echo $1
echo $2
echo $3
}
myFunction "firstString" "second string with spaces" "thirdString"
Run Code Online (Sandbox Code Playgroud)
运行时,我期望的输出是:
firstString
second string with spaces
thirdString
Run Code Online (Sandbox Code Playgroud)
但是,实际输出的是:
firstString
second
string
Run Code Online (Sandbox Code Playgroud)
有没有办法将带空格的字符串作为单个参数传递给bash中的函数?
我感兴趣的是在R中使用可选参数编写函数的"正确"方法是什么.随着时间的推移,我偶然发现了几条代码在这里采取了不同的路径,我找不到合适的(官方)位置关于这个话题.
到目前为止,我已经写了这样的可选参数:
fooBar <- function(x,y=NULL){
if(!is.null(y)) x <- x+y
return(x)
}
fooBar(3) # 3
fooBar(3,1.5) # 4.5
Run Code Online (Sandbox Code Playgroud)
如果仅x提供,该函数只返回其参数.它使用NULL第二个参数的默认值,如果该参数恰好不是NULL,则该函数会添加两个数字.
或者,可以像这样编写函数(其中第二个参数需要通过名称指定,但也可以使用unlist(z)或定义z <- sum(...)):
fooBar <- function(x,...){
z <- list(...)
if(!is.null(z$y)) x <- x+z$y
return(x)
}
fooBar(3) # 3
fooBar(3,y=1.5) # 4.5
Run Code Online (Sandbox Code Playgroud)
我个人更喜欢第一个版本.但是,我可以看到两者的好坏.第一个版本不太容易出错,但第二个版本可用于合并任意数量的选项.
是否有一种"正确"的方式来指定R中的可选参数?到目前为止,我已经确定了第一种方法,但两者偶尔会感觉有点"hacky".
我感兴趣的是,const在JavaScript中使用特定功能可以设置哪些类型的值有任何限制.这有效吗?虽然它确实有效,但是出于任何原因它被认为是不好的做法?
const doSomething = () => {
...
}
Run Code Online (Sandbox Code Playgroud)
是否应该在ES6中以这种方式定义所有功能?如果是这样的话,似乎并没有这样.
谢谢你的评论!
function ×10
python ×4
javascript ×2
annotations ×1
bash ×1
command-line ×1
const ×1
ecmascript-6 ×1
email ×1
lambda ×1
linux ×1
math ×1
php ×1
python-3.x ×1
r ×1
shell ×1
smtplib ×1