小编Pau*_*her的帖子

如何让Python代码保持在80个字符以下而不会让它变得丑陋?

这是一个在我的所有编程,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或其他一些这里.

python

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

让Ant <javac>识别类路径

我有一个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)

java ant classpath

42
推荐指数
3
解决办法
8万
查看次数

是sprintf(缓冲区,"%s [...]",缓冲区,[...])安全吗?

我看到使用这个模式连接到我正在处理的一些代码中的字符串:

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)

替换这个.

c printf c-strings

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

JTable的实时排序

我已经弄清楚如何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)

java sorting model-view-controller swing jtable

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

对于Inkscape,在Ant脚本中展开相对路径

我想编写一个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的解决方法(可能设置工作目录)?

ant build-automation filenames inkscape

3
推荐指数
1
解决办法
1369
查看次数

什么是XML命名空间,它与Spring Transactions有什么关系?

我刚刚阅读了一个Spring事务教程,其中提到了一些可用于声明式事务管理的元素,它们在tx命名空间中定义.tx名称空间实际包含什么.在哪里定义,注册等?为什么我需要命名空间?

我想知道一般的命名空间,而不仅仅是特定于tx命名空间的命名空间.

xml namespaces spring-transactions

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

Grails在同一个表中的多对多关系

我正在使用Grails,我希望有一个单向的多对多关系.

在我的应用程序中,员工可以"标记"另一个员工,以便快速访问它们以留下笔记.员工无需知道谁为他们添加了书签.

换句话说,我基本上想拥有一个employee.bookmarks可以用于此的属性.

到目前为止,我已经找到了关于 Grails ORM 的多对多关系文档,但这似乎只是在两个不同的表中.

grails groovy many-to-many grails-orm

0
推荐指数
1
解决办法
806
查看次数