小编dre*_*mac的帖子

PHP相当于Python的__name__ =="__ main__"?

根据标题,是否有PHP相当于__name__ == "__main__"

有什么东西适用于通过命令行和Web请求执行的脚本,还是需要自定义函数?

对于那些不熟悉Python的人来说,__name__ == "__main__"允许你定义一个模块文件,并且如果它是入口点,还有一些允许你运行它的东西.PHP中的等效结构类似于:

// SomeClass.php
<?php
class SomeClass
{
    function doStuff() {
        echo "wahey!\n";
    }
}

// python, I know.
if (__name__ == "__main__") {
    $sc = new SomeClass;
    $sc->doStuff();
}
?>

// OtherClass.php
<?php
require_once("SomeClass.php");
class OtherClass
{
    public $yep;
}
?>

// command line:
php SomeClass.php     // outputs "wahey!"
php OtherClass.php    // outputs nothing
Run Code Online (Sandbox Code Playgroud)

注意:zerkms的答案是最好的,但是不太正确 - 它应该是:

if (!debug_backtrace()) {
    // do useful stuff
}
Run Code Online (Sandbox Code Playgroud)

这比!count(debug_backtrace())快得多,它本身的速度大约是我的涉及realpath()的解决方案的两倍.

php program-entry-point

34
推荐指数
2
解决办法
4745
查看次数

Ruby中Python文档字符串的等价物是什么?

在Python中,您可以使用使用访问对象的文档字符串obj.__doc__.Ruby中的等效动作是什么?

ruby python documentation language-comparisons ruby-on-rails

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

如何在python中将字符串转换为函数?

例如,如果我有一个名为add like的函数

def add(x,y):
    return x+y
Run Code Online (Sandbox Code Playgroud)

我希望能够将字符串或输入转换为直接转换为该函数

w=raw_input('Please input the function you want to use')
Run Code Online (Sandbox Code Playgroud)

要么

w='add'
Run Code Online (Sandbox Code Playgroud)

有没有办法用w来引用函数add?

python string function string-evaluation

34
推荐指数
6
解决办法
6万
查看次数

我不明白YAML标签是什么

我在某种程度上得到它,但我还没有看到一个没有提出更多问题而不是答案的例子.

http://rhnh.net/2011/01/31/yaml-tutorial

# Set.new([1,2]).to_yaml
--- !ruby/object:Set 
hash: 
  1: true
  2: true
Run Code Online (Sandbox Code Playgroud)

我知道我们正在声明一个Set标签​​.我不知道后续哈希映射与它有什么关系.我们是在宣布架构吗?有人能给我看一个带有多个标签声明的例子吗?

我已经阅读了规范:http://yaml.org/spec/1.2/spec.html#id2761292

%TAG ! tag:clarkevans.com,2002:
Run Code Online (Sandbox Code Playgroud)

这是宣告架构吗?为了成功解析文件,解析器还需要做些什么吗?某种类型的模式文件?

http://www.yaml.org/refcard.html

Tag property: # Usually unspecified.
    none    : Unspecified tag (automatically resolved by application).
    '!'     : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
    '!foo'  : Primary (by convention, means a local "!foo" tag).
    '!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
    '!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo").
    '!<foo>': Verbatim tag (always means "foo").
Run Code Online (Sandbox Code Playgroud)

为什么与主标记和辅助标记相关,为什么辅助标记引用URI?有这些问题正在解决什么问题?

我似乎看到很多"他们是什么",没有"为什么他们在那里",或"他们用于什么".

tags yaml specifications pyyaml

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

什么是只匹配空字符串的正则表达式?

有很多关于正则表达式匹配可能空字符串的帖子,但我不能轻易找到任何提供匹配空字符串的正则表达式.

我知道这^将匹配任何行的开头,$并将匹配任何行的结尾以及字符串的结尾.因此,/^$/匹配远远超过空字符串,如"\n","foobar \n \n"等.

不过,我会想到/\A\Z/只匹配空字符串,因为\A匹配字符串的开头并\Z匹配字符串的结尾.但是,我的测试表明它/\A\Z/也会匹配"\n".这是为什么?

regex string

34
推荐指数
4
解决办法
7万
查看次数

如何更新MySQL 5.7.10中的JSON数据类型列?

我最近开始使用MySQL 5.7.10,我很喜欢原生的JSON数据类型.

但是在更新JSON类型值时遇到了问题.

问题:

下面是表格格式,这里我想在表格的JSON data列中再添加1个键t1.现在我必须获取值修改它并更新表.所以它涉及一个额外的SELECT声明.

我可以像这样插入

INSERT INTO t1 values ('{"key2":"value2"}', 1);

mysql> select * from t1;
+--------------------+------+
| data               | id   |
+--------------------+------+
| {"key1": "value1"} |    1 |
| {"key2": "value2"} |    2 |
| {"key2": "value2"} |    1 |
+--------------------+------+
3 rows in set (0.00 sec)

mysql>Show create table t1;


+-------+-------------------------------------------------------------

-------------------------------------------------------+
| Table | Create Table                                                                                                       |
+-------+--------------------------------------------------------------------------------------------------------------------+
| t1    | CREATE TABLE `t1` (
  `data` json DEFAULT NULL,
  `id` …
Run Code Online (Sandbox Code Playgroud)

mysql json mysql-5.7 mysql-json

34
推荐指数
2
解决办法
4万
查看次数

如何在MySQL中将结果表转换为JSON数组

我想在MySQL中将结果表转换为JSON数组,最好只使用普通的MySQL命令.例如查询

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |
Run Code Online (Sandbox Code Playgroud)

预期的JSON输出将是

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法在普通的MySQL中做到这一点?

编辑:

有一些答案如何使用例如MySQL和PHP,但我找不到纯MySQL解决方案.

mysql json etl data-conversion

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

按第一个字符分组

我在Oracle SQL中遇到问题.

first_nameemployees表格中有一列.我想根据第一个字符对我的记录进行分组first_name.

例如,我有26条记录,一个用name = 'Alice',一用name = 'Bob',等下来的字母表每个名称的第一个字符.查询后,应该有26个组,每个组有一名员工.

我尝试了以下,但它不起作用:

SELECT employee_id, (SUBSTR(first_name,1,1)) AS alpha FROM employees
GROUP BY alpha;

name_which_starts_from       employees  
A                            10  
B                            2  
C                            4  
D                            9  
E                            3  
G                            3  
H                            3  
I                            2  
J                            16  
K                            7  
L                            6  
M                            6  
N                            4  
O                            1  
P                            6  
R                            3  
S                            13  
T                            4  
V                            2  
W                            3  
Run Code Online (Sandbox Code Playgroud)

sql group-by aggregate-functions

33
推荐指数
3
解决办法
4万
查看次数

使用git仅克隆一个子目录

我有一个包含子目录的git存储库.示例dirA/dirB.有没有办法git clone在Unix服务器上只从子目录(dirB)中提取文件?

除了克隆之外还有其他一些git命令可以执行此操作吗?

我如何git特定文件?

git sparse-checkout

33
推荐指数
3
解决办法
7万
查看次数

全局词典不需要关键字全局来修改它们吗?

可能重复:
为什么在这种情况下不需要全局关键字?

我想知道为什么我可以在没有global关键字的情 为什么它对其他类型是强制性的?这背后有什么逻辑吗?

例如代码:

#!/usr/bin/env python3

stringvar = "mod"
dictvar = {'key1': 1,
           'key2': 2}

def foo():
    dictvar['key1'] += 1

def bar():
    stringvar = "bar"
    print(stringvar)

print(dictvar)
foo()
print(dictvar)

print(stringvar)
bar()
print(stringvar)
Run Code Online (Sandbox Code Playgroud)

给出以下结果:

me@pc:~/$ ./globalDict.py 
{'key2': 2, 'key1': 1}
{'key2': 2, 'key1': 2}  # Dictionary value has been changed
mod
bar
mod
Run Code Online (Sandbox Code Playgroud)

我期待的地方:

me@pc:~/$ ./globalDict.py 
{'key2': 2, 'key1': 1}
{'key2': 2, 'key1': 1}  # I didn't use global, so dictionary remains the same
mod
bar
mod
Run Code Online (Sandbox Code Playgroud)

python dictionary scope global global-variables

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