这似乎发生了很多,并且想知道这是否是Python语言中的要求,还是仅仅是常规问题?
此外,有人可以命名并解释哪些功能倾向于具有下划线,以及为什么(__init__例如)?
我正在浏览一些开源的C++代码,并注意到代码中使用的分数很多,主要是在变量名称的开头.
return __CYGWIN__;
Run Code Online (Sandbox Code Playgroud)
只是想知道是否有这样的原因,或者只是一些人的代码风格?我认为我很难读.
我对实际的编程语言很新,而Python是我的第一个.我知道我在Linux上的方式,足以获得暑期工作(我还在上高中),在工作中,我有很多空闲时间,我正在学习Python.
有一件事让我感到高兴.当你有像这样的表达式时,Python究竟有什么不同
x.__add__(y) <==> x+y
x.__getattribute__('foo') <==> x.foo
Run Code Online (Sandbox Code Playgroud)
我知道什么方法做什么和做什么,我得到他们做的,但我的问题是:上面的双下划线方法与它们更简单的等价方法有何不同?
PS,我不介意在编程历史上讲课,事实上,我发现知道它非常有用:)如果这些主要是Python的历史方面,请随意开始漫步.
extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
__THROW;
Run Code Online (Sandbox Code Playgroud)
我在Linux机器上的/usr/include/netinet/ether.h中找到了上面的函数定义.
有人可以在const(关键字),addr(标识符)和最后__THROW前面解释双下划线的含义.
这些PHP代码行中的双重下划线是什么意思?
$WPLD_Trans['Yes']=__('Yes',$WPLD_Domain);
$WPLD_Trans['No']=__('No',$WPLD_Domain);
Run Code Online (Sandbox Code Playgroud) 我看到JavaScript中某些对象的某些属性以双下划线开头.例如,像__defineGetter__或__defineSetter__或__proto__.它是一个常规定义的ECMAScript规范吗?或者它可能只是开发人员社区的惯例?
在我工作的C/Unix环境中,我看到一些开发人员使用__progname而不是argv[0]使用消息.这有什么好处吗?__progname和之间的区别是什么argv[0].它是便携式的吗?
有时我会在开头和结尾看到带有双下划线的变量名.例如:
Article.__elasticsearch__
Run Code Online (Sandbox Code Playgroud)
是否有一些与Ruby变量名称中的双下划线相关的命名约定?
当PHP函数名称以下划线开头时,它是什么意思?
例如: __construct()
我知道构造意味着什么,但我已经看到函数以下划线或双下划线开头的其他地方,我只是不确定其意义.
Objective-C中的单个下划线显然是为Apple的"内部"使用保留的(并且在Apple声明之前可用于私有实例变量).但是为什么他们会在他们的SQLiteBooks示例中为iPhone 使用双 -underscore呢?请参阅从MasterViewController.m获取的此片段:
+ (EditingViewController *)editingViewController {
// Instantiate the editing view controller if necessary.
if (__editingViewController == nil) {
__editingViewController = [[EditingViewController alloc] initWithNibName:@"EditingView" bundle:nil];
}
return __editingViewController;
}
Run Code Online (Sandbox Code Playgroud)
在这个论坛上提到了双重下划线,因为它与C有关 - 它是"compier的内部使用".我想我不知道这在这种情况下是如何适用的.
我在我的应用程序中需要一个ViewController,它的行为与SQLiteBooks示例项目中的一样,但是这个双下划线让我感到困惑.