这是一个在我的所有编程,python和其他方面都不断出现的问题.我真的很想把我的代码保持在80个字符以下,如果可能的话/不是非常难看的话.在像Perl这样的语言中,这并不太难,因为空白并不重要.在Python中,我最终会把头撞到墙上,而不是试图想出一种分裂我的长线的"好"方式.所以,Code大师,你是怎么做到的?您可以告诉我的任何一般策略?
我正在处理的一个特殊问题是:
self.SomeLongLongName = SomeLongLongName.SomeLongLongName(some_obj, self.user1, self.user2)
Run Code Online (Sandbox Code Playgroud)
当我自然而然地尝试用Python来解决这个问题时,对我来说唯一可行的方法似乎是:
self.SomeLongLongName = SomeLongLongName.SomeLongLongName(some_obj,
self.user1
self.user2)
Run Code Online (Sandbox Code Playgroud)
我想,它看起来并不那么糟糕,但它占用了三行,这完全没必要.必须有更好的方法,不是吗?
注意:我知道有些人不喜欢80个字符,并创建了自己的限制.我理解这背后的动机并尊重它,但80个字符是我的首选限制.请不要占用空间试图说服我去120或其他一些这里.
我有一个Apache Ant构建文件,其中包含一个<javac>命令,该命令需要在构建中使用四个特定的JAR classpath.我试过这样做:
<project basedir=".." default="build_to_jar" name="Transnet Spectrum Analyzer">
<property environment="env"/>
<property name="src" value="src"/>
<property name="libsrc" value="library_sources" />
<property name="build" value="build"/>
<property name="dist" value="dist"/>
<property name="target" value="1.5"/>
<property name="libraries" value="./libraries"/>
<fileset dir="." id="TSA.classpath">
<include name="${libraries}/rxtx/RXTXcomm.jar" />
<include name="${libraries}/commons-logging-1.1.1.jar" />
<include name="${libsrc}/JCommon/jcommon-1.0.15.jar" />
<include name="${libsrc}/JFreeChart/jfreechart-1.0.12.jar" />
</fileset>
<target name="compile" depends="clean,init" description="compile the source " >
<echo>Compile from ${src} to ${build}</echo>
<javac destdir="${build}" source="${target}" target="${target}">
<compilerarg value="-Xlint:unchecked"/>
<src path="${src}"/>
<classpath path="TSA.classpath" />
</javac>
</target>
<!-- blah blah blah --> …Run Code Online (Sandbox Code Playgroud) 我看到使用这个模式连接到我正在处理的一些代码中的字符串:
sprintf(buffer, "%s <input type='file' name='%s' />\r\n", buffer, id);
sprintf(buffer, "%s</td>", buffer);
Run Code Online (Sandbox Code Playgroud)
而且我很确定它不安全C.你会注意到buffer它既是输出又是第一个输入.
除了缓冲区溢出的明显可能性之外,我相信不能保证缓冲区在函数的开始和结束之间不会发生变化(即,无法保证缓冲区的状态在执行功能).sprintf的签名还指定了目标字符串restrict.
我还记得一篇关于memcpy中的推测性写作的报告,我认为没有理由为什么某个C库可能在sprintf中做同样的事情.当然,在这种情况下,它会写入其来源.因此,这种行为是安全的?
仅供参考,我建议:
char *bufEnd = buffer + strlen(buffer);
/* sprintf returns the number of f'd and print'd into the s */
bufEnd += sprintf(bufEnd, " <input type='file' name='%s' />\r\n", id);
Run Code Online (Sandbox Code Playgroud)
替换这个.
我已经弄清楚如何JTable正确排序,但我无法弄清楚如何更改表格单元格时自动更新排序顺序.现在,我有这个(诚然很长)的代码,主要是基于Java Tutorial的How to Use Tables中的代码.我突出了我所做的改变// ADDED.在这种情况下,新添加的值可以正确排序,但是当我进入编辑值时,即使我打电话,它也似乎无法求助fireTableCellUpdated?
简而言之,当模型中的数据值发生变化时,如何让表格重新排序?
/*
* Copyright (c) 1995 - 2008 Sun Microsystems, Inc. All rights reserved.
* See the standard BSD license.
*/
package components;
/*
* TableSortDemo.java requires no other files.
*/
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
public class TableSortDemo extends JPanel {
private boolean DEBUG = false; …Run Code Online (Sandbox Code Playgroud) 我想编写一个Ant脚本来调用需要完整路径的外部实用程序(实际上是Inkscape).现在我有
<exec executable="${inkscape.path}">
<arg value="--file=build_exe/splash.svg" />
<arg value="--export-png=build_exe/splash.png" />
<arg value="-C" />
</exec>
Run Code Online (Sandbox Code Playgroud)
在Windows上,Inkscape需要绝对路径.那么我怎么能哄Ant让我build_exe/filename成为一条绝对的道路呢?或者,或者,是否有针对Inkscape的解决方法(可能设置工作目录)?
我刚刚阅读了一个Spring事务教程,其中提到了一些可用于声明式事务管理的元素,它们在tx命名空间中定义.tx名称空间实际包含什么.在哪里定义,注册等?为什么我需要命名空间?
我想知道一般的命名空间,而不仅仅是特定于tx命名空间的命名空间.
我正在使用Grails,我希望有一个单向的多对多关系.
在我的应用程序中,员工可以"标记"另一个员工,以便快速访问它们以留下笔记.员工无需知道谁为他们添加了书签.
换句话说,我基本上想拥有一个employee.bookmarks可以用于此的属性.