是否可以在子类中将公共方法设为私有?我不希望扩展此类的其他类能够调用某些方法.这是一个例子:
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.这可能吗 ?
编辑:这是一个"逻辑"的原因是我不希望用户以错误的顺序调用方法.
假设我正在使用一个插件,它按时间顺序在我的页面中添加内容.该插件无法控制添加到页面的项目数量或添加到页面的顺序.
所以,假设在将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正在删除最近的两篇帖子.
css是否能够根据css重新排序的顺序删除子节点,或者我是否需要使用js重新组织html?
我去年一直在用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应用程序是游戏.
在Mac中,如果我想要gzip文件,我只需输入gzip文件名即可.如果我在Windows中执行此操作,它会告诉我"gzip无法识别......".
如何将此功能添加到Windows?
我知道我不可能是第一个问这个问题的人,但我找不到答案,所以请不要吃我。
如果我有 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) 我有两个看起来像这样的模型:
模型.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详情页面,则不会出现相应的交易。有什么我没有连接的吗?
我创建了一个可重用的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)
当我这样做时,我得到一个我不完全理解的错误:
目前,我的缓存策略如下所示:
<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 天。
这里总结了一些问题.是的,我知道其中一些答案;)我可以在其他人身上挥手,但我真的很喜欢这里的细节.
我只是看着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 ??? 传递到任何?真???当然,因为文档定义了不能正确任何为: …
这显然是一种改变按钮背景颜色的完全低效的方法,但我想知道为什么这不起作用:
<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}),为什么它不能在上面的场景中使用?
python ×4
django ×3
.htaccess ×1
apache ×1
caching ×1
cmd ×1
command-line ×1
css ×1
css3 ×1
django-admin ×1
flexbox ×1
gzip ×1
html ×1
inheritance ×1
ios ×1
javascript ×1
jquery ×1
nscoding ×1
object ×1
oop ×1
performance ×1
real-time ×1
swift ×1
uitableview ×1
variables ×1
windows ×1
xib ×1