小编Joh*_*rry的帖子

在python子类中创建一个私有方法

是否可以在子类中将公共方法设为私有?我不希望扩展此类的其他类能够调用某些方法.这是一个例子:

class A:
    def __init__(self):
        #do something here

    def method(self):
        #some code here

class B(A):
    def __init__(self):
        A.__init__(self)
        #additional initialization goes here

    def method(self):
        #this overrides the method ( and possibly make it private here )
Run Code Online (Sandbox Code Playgroud)

从这一点开始,我不希望任何从B扩展的类能够调用method.这可能吗 ?

编辑:这是一个"逻辑"的原因是我不希望用户以错误的顺序调用方法.

python oop inheritance

25
推荐指数
9
解决办法
2万
查看次数

当flex项目在列反向时应用nth-child()

假设我正在使用一个插件,它按时间顺序在我的页面中添加内容.该插件无法控制添加到页面的项目数量或添加到页面的顺序.

所以,假设在将5个项目添加到页面后,这就是我的HTML的样子:

<div class="flex-container">
  <div class="flex-item">First</div>   <!-- Posted 4 days ago -->
  <div class="flex-item">Second</div>  <!-- Posted 3 days ago -->
  <div class="flex-item">Third</div>   <!-- Posted 2 days ago -->
  <div class="flex-item">Fourth</div>  <!-- Posted 1 day ago -->
  <div class="flex-item">Fifth</div>   <!-- Posted today -->
</div>
Run Code Online (Sandbox Code Playgroud)

我想颠倒顺序,以便首先显示最新的项目,所以我使用:

.flex-container {
  display:flex;
  flex-direction:column-reverse;
}
Run Code Online (Sandbox Code Playgroud)

现在,我的项目按此顺序显示:

Fifth
Fourth
Third
Second
First
Run Code Online (Sandbox Code Playgroud)

现在让我们说我只想在页面上显示最多3个项目.如何使用显示项目的新序列来执行此操作?

如果物品没有用css反转,我可以删除3件物品之后的任何东西:

.flex-item:nth-child(n+4) {
  display:none;
}
Run Code Online (Sandbox Code Playgroud)

但由于它们被颠倒了,上面的CSS正在删除最近的两篇帖子.

TL; DR

css是否能够根据css重新排序的顺序删除子节点,或者我是否需要使用js重新组织html?

html css css-selectors css3 flexbox

8
推荐指数
1
解决办法
1578
查看次数

Django替代实时Web应用程序

我去年一直在用Django开发一个Web服务器应用程序.堆栈是Django + Apache + MySql.这个堆栈非常适合我们的需求.最近需要一些实时功能,并有机会在服务器应用程序中更改/重写很多东西.令我惊讶的是,Django不是这里最好的选择.

我一直在阅读很多(推,websockets,gunicorn ......很多东西...... http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但是我尚未管理,决定我是否使用Django,或者我是否应该使用更适合这项工作的新软件堆栈.与Django一起走似乎有点不自然.任何经验丰富的开发人员能指出我正确的方向吗?

因此,基本的问题是:当前的软件堆栈有哪些替代方案可用于构建实时Web应用程序?

谢谢

PS:不是母语为英语的人.:)

编辑:替代方案需要允许安全连接.

编辑2:我们开发的Web应用程序是游戏.

python django web-applications real-time

7
推荐指数
1
解决办法
6593
查看次数

如何向Windows CMD添加gzip命令?

在Mac中,如果我想要gzip文件,我只需输入gzip文件名即可.如果我在Windows中执行此操作,它会告诉我"gzip无法识别......".

如何将此功能添加到Windows?

windows command-line gzip cmd

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

如何在模型的保存方法中访问 ManyToManyField?

我知道我不可能是第一个问这个问题的人,但我找不到答案,所以请不要吃我。

如果我有 amodel和 afield那就是 a ManyToManyField; 我知道我可以在保存之前获取选定的对象,但如果选定的对象已更改,则这没有帮助。

models.py:

class AddOn(models.Model):
    name = models.CharField(max_length=100)


class Invoice(models.Model):
    additional_options = models.ManyToManyField(AddOn)

    def save(self, *args, **kwargs):
        super().save()
        # this prints the objects that were selected prior to the save.
        # this isn't helpful if the selected objects have changed.
        print(self.additional_options.all())
Run Code Online (Sandbox Code Playgroud)

django django-models

7
推荐指数
1
解决办法
1055
查看次数

Django相关模型未更新管理中的相关对象

我有两个看起来像这样的模型:

模型.py

class Client(models.Model):
    deal = models.ManyToManyField('Deal', related_name="clients")

class Deal(models.Model):
    client = models.ManyToManyField(Client, related_name="deals")
Run Code Online (Sandbox Code Playgroud)

然后在管理员中,我内联了相关模型,以便无论您打开的对象类型如何,都可以轻松进行更改。

管理文件

class ClientInline(admin.TabularInline):
    model = Deal.client.through

class DealAdmin(admin.ModelAdmin):
    inlines = [ClientInline]

class DealInline(admin.TabularInline):
    model = Client.deal.through

class ClientAdmin(admin.ModelAdmin):
    inlines = [DealInline]
Run Code Online (Sandbox Code Playgroud)

但是,如果您在 aClient中添加 aDeal然后打开Client详情页面,则不会出现相应的交易。有什么我没有连接的吗?

python django django-models django-admin

7
推荐指数
1
解决办法
323
查看次数

如何以编程方式添加可重用的自定义视图?(迅速)

我创建了一个可重用的xib文件,其中包含一个表,并将其加载到如下TableView.swift文件中:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)    
    Bundle.main.loadNibNamed("TableView", owner: self, options: nil)
}
Run Code Online (Sandbox Code Playgroud)

我只是提到这一点来澄清我对如何加载xib文件并不感到困惑


我可以RootViewController.swift通过添加视图UIViewController并为该视图提供如下自定义类,轻松地在我的文件中加载可重用视图:

在此输入图像描述

然后为这个视图创建一个这样的出口:

在此输入图像描述

所以这是我的问题:

为什么我不能简单地添加这样的视图:

let tableViewView = TableView()
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到一个我不完全理解的错误:

在此输入图像描述

nscoding uitableview xib ios swift

6
推荐指数
0
解决办法
1256
查看次数

如何将缓存策略应用于具有 .htaccess 的特定文件?

目前,我的缓存策略如下所示:

<IfModule mod_headers.c>    
  <FilesMatch "\.(css)$">
   Header set Cache-Control "max-age=691200"
  </FilesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

这会将我的 css 文件缓存 8 天。如果我想将特定文件缓存一年,我该怎么做?我看到这个答案,所以我尝试这样做:

<IfModule mod_headers.c>    
  <FilesMatch "\.(css)$">
   Header set Cache-Control "max-age=691200"
  </FilesMatch>
  <FilesMatch "bootstrap\.(css)$">
   Header set Cache-Control "max-age=31536000"
  </FilesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

除此之外,以防万一 apache 在先到先服务的基础上应用规则(<- 可能是该短语的错误使用):

<IfModule mod_headers.c>    
  <FilesMatch "bootstrap\.(css)$">
   Header set Cache-Control "max-age=31536000"
  </FilesMatch>
  <FilesMatch "\.(css)$">
   Header set Cache-Control "max-age=691200"
  </FilesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但是当我通过页面速度洞察运行页面时,bootstrap.css 文件的缓存策略保持不变。我还清除了自己的缓存,打开了隐身选项卡,并检查了开发工具的网络选项卡内的缓存策略,引导文件的缓存策略仍然是 8 天。

apache .htaccess caching

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

将迭代器传递给任何执行速度和为什么?

这里总结了一些问题.是的,我知道其中一些答案;)我可以在其他人身上挥手,但我真的很喜欢这里的细节.

  1. 这甚至是个好主意吗?(这个不在下面)
  2. 我想知道地图是否真的能提高速度?为什么?
  3. 为什么世界上会将迭代器传递给任何使代码更快的代码呢?
  4. 为什么我的Counter对象工作,我的print_true函数失败了?
  5. 是否有一个等效于itertools.imap的东西,它会一遍又一遍地调用一个函数,并且可选择一定次数?
  6. 我的胡萝卜在哪里?!?

我只是看着PYCON 2011:Dropbox的是怎么做的和如何Python的帮助了(当然我完成大部分的零件跳过),但最后真正有趣的东西开始在大约22:23.

演讲者主张在C中制作你的内部循环并且"运行一次"的东西不需要太多的优化(有意义)......然后他继续陈述......释义:

将迭代器的组合传递给任何用于大规模速度改进的组合.

这是代码(希望它是相同的):

import itertools, hashlib, time   
_md5 = hashlib.md5()  
def run():
    for i in itertools.repeat("foo", 10000000):
        _md5.update(i)
a = time.time();  run(); time.time() - a  
Out[118]: 9.44077205657959

_md5 = hashlib.md5() 
def run():
    any(itertools.imap(_md5.update, itertools.repeat("foo", 10000000)))    
a = time.time();  run(); time.time() - a
Out[121]: 6.547091007232666
Run Code Online (Sandbox Code Playgroud)

嗯,看起来更高的速度改进,我可以得到一个更快的电脑!(从他的幻灯片来看.)

然后他做了一堆挥手而没有真正详细说明为什么.

我已经知道迭代器从回答pythonic方式做N次而没有索引变量?感谢Alex Martelli.

然后我想,我想知道地图是否真的增加了速度提升?我最后的想法是WTF ??? 传递到任何?真???当然,因为文档定义了不能正确任何为: …

python performance

5
推荐指数
0
解决办法
2038
查看次数

参数是否可以用于创建新的对象键和作为同一函数中的变量?

这显然是一种改变按钮背景颜色的完全低效的方法,但我想知道为什么这不起作用:

<button id="blueButton">Button</button>
Run Code Online (Sandbox Code Playgroud)
var data = {};

function changeColor(e){
  data.e = "blue";
  $('#' + e).css('background-color', data.e);
}

changeColor(blueButton);
Run Code Online (Sandbox Code Playgroud)

如果变量能够在字符串中使用(例如${variable}),为什么它不能在上面的场景中使用?

javascript variables jquery object

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