我有一个封装mypack与模块mod_a,并mod_b在里面.我打算包装本身并mod_a自由进口:
import mypack
import mypack.mod_a
Run Code Online (Sandbox Code Playgroud)
但是,我想保留mod_b专属用途mypack.那是因为它的存在仅仅是为了组织后者的内部代码.
我的第一个问题是,在Python编程中接受这样的"私有"模块是否可以接受?
如果是,我的第二个问题是,向客户传达这一意图的最佳方式是什么?我是否在名称前加下划线(即_mod_b)?或者声明一个子包private并将所有这些模块放在那里是一个好主意吗?
我在专业环境中定期在R中编程,我也为客户或同事编写包.这里的一些程序员具有Java背景,并坚持使用S4方法以面向对象的方式做所有事情.另一方面,我的经验是,在尝试让代码按照您希望的方式执行操作时,S4实现通常会更糟,并且会导致更多的麻烦.
我绝对同意,在某些情况下,您必须能够以受控方式构造复杂对象或附加现有对象.但大多数时候,S4实现也可以使用经典列表轻松完成,没有像定义standardGeneric,方法,构造函数,初始化器等那样麻烦.
你什么时候考虑为R编写S4实现?
编辑:为了清楚起见,我非常感谢R.OOP中的答案和关于OO的讨论可以在R中以多种方式完成,但我的问题实际上是针对特定使用S4方法的附加值.
主要问题是数据库结构的版本控制.
标准的mysqldump和pg_dump实用程序不能生成非常适合版本控制的文件.
dump命令生成具有自动增量值,TOC条目等的转储文件.由于这些对象会不断变化,因此总会生成巨大的差异文件.
PostgreSQL差异
--
--- TOC entry 2630 (class 0 OID 0)
+-- TOC entry 2549 (class 0 OID 0)
-- Dependencies: 6
-- Name: SCHEMA adm; Type: COMMENT; Schema: -; Owner: admin
@@ -61,5 +61,5 @@
Run Code Online (Sandbox Code Playgroud)
MySQL Diff
--- Dump completed on 2010-07-20 14:33:44
+-- Dump completed on 2010-08-11 8:59:39
Index: /db.sql
===================================================================
--- /db.sql (revision 1274)
+++ /db.sql (revision 1317)
@@ -36,5 +36,5 @@
`message` text,
PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=21122 DEFAULT CHARSET=utf8;
+) ENGINE=MyISAM AUTO_INCREMENT=23730 …Run Code Online (Sandbox Code Playgroud) 我在Linux上通过Python脚本运行Java程序,但程序崩溃而没有输出任何错误消息.执行Java程序的os.system命令输出错误代码24.这是什么意思?
我无法从DomDocument中删除节点(获取异常):
我的代码:
<?php
function filterElements($htmlString) {
$doc = new DOMDocument();
$doc->loadHTML($htmlString);
$nodes = $doc->getElementsByTagName('a');
for ($i = 0; $i < $nodes->length; $i++) {
$node=$nodes->item($i)
if ($value->nodeValue == 'my_link') {
$doc->removeChild($node);
}
}
}
$htmlString = '<div>begin..</div>this tool<a name="my_link">Beo</a> great!<div>.end</div>';
filterKeyLinksElements($htmlString);
?>
Run Code Online (Sandbox Code Playgroud)
谢谢你,约瑟夫
对于某人来说,这可能是一个非常简单的答案.我有一个Optional Parameter像这样的方法;
public static Email From(string emailAddress, string name = "")
{
var email = new Email();
email.Message.From = new MailAddress(emailAddress, name);
return email;
}
Run Code Online (Sandbox Code Playgroud)
现在,我必须以.Net 3.5为目标,这是我的理解,它是Optional Parameters.Net 4的一部分.但是,我的项目构建并且我仔细检查了属性 - 应用程序页面,其中指出3.5作为目标框架.然后我在MSDN上发现了一篇文章,说它是VS2010中C#4的一个特性.(MSDN文章 - > 命名和可选参数)
有人可以帮我澄清一下.C#4不需要.Net4?什么是可选参数实际上是一部分?
谢谢.
我有一个从UserControl类中提取的WPF用户控件.对于控制器,MouseLeftButtonDown根本没有被触发.我添加了事件处理程序,并尝试如下.我想它是在其他地方处理的,如何调试并找到它在哪里被hanlded ..任何帮助表示赞赏!
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
}
Run Code Online (Sandbox Code Playgroud) 我有以下情况:
获得了将用于的HTML模板文件mailing.
这是一个简化的例子:
<table>
<tr>
<td>Heading 1</td>
<td>heading 2</td>
</tr>
<PRODUCT_LIST>
<tr>
<td>Value 1</td>
<td>Value 2</td>
</tr>
</PRODUCT_LIST>
</table>
Run Code Online (Sandbox Code Playgroud)
我需要做的就是获取HTML代码<PRODUCT_LIST>,然后重复该代码,就像我在阵列上的产品一样.
获取/替换此List的正确PHP Regex代码是什么?
谢谢!
我有疑问:如何在Visual C++ 2010中关闭突出显示关键字"事件"?我不使用.net,所以对我来说它不是关键字,我称之为变量"event".
我想弄清楚我们是否需要减少拥有svn管理员权限的开发人员的数量.
1 - 如果subversion用户意外删除并提交删除文件或文件夹,该如何恢复文件?
2 - 如果subversion用户拥有svn admin权限,那么在客户端上执行的svn delete行为是否有所不同(更长久)?
目标:红帽企业Linux(RHEL)5.2下的svn命令行客户端
php ×2
python ×2
svn ×2
.net ×1
c# ×1
c++ ×1
database ×1
domdocument ×1
error-code ×1
java ×1
linux ×1
methods ×1
mysql ×1
oop ×1
postgresql ×1
r ×1
regex ×1
s4 ×1
versioning ×1
wpf ×1
wpf-controls ×1