小编Jef*_*kas的帖子

为什么我不能在while循环中进行评估?

我想在循环中创建bash别名,循环从命令中读取行.为了逐行读取输出,我相信我需要将输出管道输入read.但是,当我这样做时,别名不存在.

如果我在我的网站中包含以下内容.bashrc:

for x in a1 a2; do
    eval "alias $x='echo foo'"
done

echo -e "a3\na4" | while read x; do
    eval "alias $x='echo foo'"
done
Run Code Online (Sandbox Code Playgroud)

别名a1a2存在,但a3a4没有.这两个循环有什么区别?

bash shell

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

如何使用元组访问深层嵌套的字典?

我想就扩大了例如自动激活 从前面的回答给nosklo允许通过元组字典的访问.

nosklo的解决方案如下所示:


class AutoVivification(dict):
    """Implementation of perl's autovivification feature."""
    def __getitem__(self, item):
        try:
            return dict.__getitem__(self, item)
        except KeyError:
            value = self[item] = type(self)()
            return value
Run Code Online (Sandbox Code Playgroud)

测试:

a = AutoVivification()

a[1][2][3] = 4
a[1][3][3] = 5
a[1][2]['test'] = 6

print a
Run Code Online (Sandbox Code Playgroud)

输出:

{1: {2: {'test': 6, 3: 4}, 3: {3: 5}}}
Run Code Online (Sandbox Code Playgroud)

我有一个案例,我想设置一个节点给定一些任意的下标元组.如果我不知道元组将有多少层,我该如何设计一种设置适当节点的方法?

我想也许我可以使用如下语法:

mytuple = (1,2,3)
a[mytuple] = 4
Run Code Online (Sandbox Code Playgroud)

但是我无法想出一个有效的实施方案.


更新

我有一个基于@ JCash答案的完整工作示例:

class NestedDict(dict):
    """                                                                       
    Nested dictionary of arbitrary depth with autovivification.               

    Allows data access via …
Run Code Online (Sandbox Code Playgroud)

python slice autovivification

5
推荐指数
1
解决办法
1479
查看次数

可以让git跟踪外部仓库中的单个文件吗?

我知道子模块,但有一个奇怪的边缘情况,我想避免为外部存储库的代码保留一个单独的目录.

我的毕业论文有一个LaTeX项目:https: //github.com/jklukas/gradthesis

它使用我保存在一个单独的存储库中的样式文件(供其他人轻松使用):https: //github.com/jklukas/uwthesis

我可以将uwthesis包含为子模块,但LaTeX只在主目录中查找样式文件.在LaTeX中有一些常见的方法,比如在导入样式文件时给出显式路径,但这看起来很难看.

目前,我只是uwthesis.stygradthesis回购中保留一份副本.是否可以配置uwthesis为远程并且能够仅针对这一个文件推送更改?

git git-submodules

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

我可以部分覆盖__setattr__吗?

我正在模仿ConfigParser模块的行为来编写一个高度专业化的解析器,它利用我使用的特定应用程序的配置文件中的一些定义良好的结构.这些文件遵循标准的INI结构:

[SectionA]
key1=value1
key2=value2

[SectionB]
key3=value3
key4=value4
Run Code Online (Sandbox Code Playgroud)

对于我的申请,这些部分基本上无关紧要; 来自不同部分的密钥之间没有重叠,并且所有用户只记住密钥名称,而不是他们应该进入哪个部分.因此,我想覆盖__getattr__并且__setattr__MyParser我创建的类中允许快捷方式像这样:

config = MyParser('myfile.cfg')
config.key2 = 'foo'
Run Code Online (Sandbox Code Playgroud)

__setattr__方法首先尝试查找一个被调用的部分key2,并将其设置为'foo'(如果存在).假设没有这样的部分,它会在每个部分内部查找一个名为的密钥key2.如果密钥存在,则将其设置为新值.如果它不存在,解析器最终会引发一个AttributeError.

我已经构建了一个测试实现,但问题是我还想要一些免除这种行为的直接属性.我想config.filename成为一个包含原始文件名称的简单字符串,并且config.content是包含每个部分的字典的字典.

是否有一种干净的方法来在构造函数中设置filenamecontent属性,以避免被我的自定义getter和setter忽略?__dict__在调用自定义之前,python是否会在对象中查找属性__setattr__

python

4
推荐指数
1
解决办法
3507
查看次数

将图像浮动到没有div的自己的"列"

我想在我现有的博客上重新创建以下页面的外观:http: //jeff.klukas.net/bio/

这里的标志是我们有两列,左边的图像和右边的文字,没有文字包裹在图像下面.此外,图像出现在垂直位置,将它们置于文本的上下文中.

当前设计使用Blueprint CSS,每对图像和文本都有成对的div.我想创建一个自适应设计,可以缩小到单个列以获得更小的浏览器宽度,因此源(从Markdown生成)看起来像:

<img src=img1.png>
<p>First paragraph...</p>
<img> src=img2.png>
<p>Second paragraph...</p>
Run Code Online (Sandbox Code Playgroud)

哪个会在狭窄的屏幕上显示为:

------------
|img1      |
------------
First paragraph
------------
|img2      |
------------
Second paragraph
Run Code Online (Sandbox Code Playgroud)

或者在宽屏幕上:

------------  First paragraph...
|img1      |  more text more text
------------  more text more text
              more text more text
              more text more text
              more text more text.
------------  Second paragraph...
|img1      |  more text more text
------------  more text more text
              more text more text
              more text more text
              more text more …
Run Code Online (Sandbox Code Playgroud)

css css-float

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

标签 统计

python ×2

autovivification ×1

bash ×1

css ×1

css-float ×1

git ×1

git-submodules ×1

shell ×1

slice ×1