我见过一些使用的代码示例和教程
def main():
# my code here
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
但为什么?是否有任何理由不在文件顶部定义您的函数,然后只在其下编写代码?即
def my_function()
# my code here
def my_function_two()
# my code here
# some code
# call function
# print(something)
Run Code Online (Sandbox Code Playgroud)
我只是想知道主要有没有押韵?
我一直在查看Python文档,以获取大型列表和字典的代码格式化最佳实践,例如,
something = {'foo' : 'bar', 'foo2' : 'bar2', 'foo3' : 'bar3'..... 200 chars wide, etc..}
Run Code Online (Sandbox Code Playgroud)
要么
something = {'foo' : 'bar',
'foo2' : 'bar2',
'foo3' : 'bar3',
...
}
Run Code Online (Sandbox Code Playgroud)
要么
something = {
'foo' : 'bar',
'foo2' : 'bar2',
'foo3' : 'bar3',
...
}
Run Code Online (Sandbox Code Playgroud)
如何处理列表/词典的深层嵌套?
我在Mac OS X上使用Python 2.6.1.
我有两个简单的Python文件(下面),但是当我运行时
python update_url.py
Run Code Online (Sandbox Code Playgroud)
我上了航站楼:
Traceback (most recent call last):
File "update_urls.py", line 7, in <module>
main()
File "update_urls.py", line 4, in main
db = SqliteDBzz()
NameError: global name 'SqliteDBzz' is not defined
Run Code Online (Sandbox Code Playgroud)
我试着以不同的方式重命名文件和类,这就是为什么两端都有x和z的原因.;)
class SqliteDBzz:
connection = ''
curser = ''
def connect(self):
print "foo"
def find_or_create(self, table, column, value):
print "baar"
Run Code Online (Sandbox Code Playgroud)
import sqlitedbx
def main():
db = SqliteDBzz()
db.connect
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Python 2对页面执行HEAD请求.
我在尝试
import misc_urllib2
.....
opender = urllib2.build_opener([misc_urllib2.MyHTTPRedirectHandler(), misc_urllib2.HeadRequest()])
Run Code Online (Sandbox Code Playgroud)
用misc_urllib2.py
含
class HeadRequest(urllib2.Request):
def get_method(self):
return "HEAD"
class MyHTTPRedirectHandler(urllib2.HTTPRedirectHandler):
def __init__ (self):
self.redirects = []
def http_error_301(self, req, fp, code, msg, headers):
result = urllib2.HTTPRedirectHandler.http_error_301(
self, req, fp, code, msg, headers)
result.redirect_code = code
return result
http_error_302 = http_error_303 = http_error_307 = http_error_301
Run Code Online (Sandbox Code Playgroud)
但我得到了
TypeError: __init__() takes at least 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud)
如果我这样做
opender = urllib2.build_opener(misc_urllib2.MyHTTPRedirectHandler())
Run Code Online (Sandbox Code Playgroud)
然后它工作正常
我有一个像这样的数组,
@switch_ports = ()
Run Code Online (Sandbox Code Playgroud)
然后想要将这个哈希的50个实例添加到switch_ports数组中
%port = (data1 => 0, data2 => 0, changed => 0)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将哈希值推送到数组中
push(@switch_ports, %port)
Run Code Online (Sandbox Code Playgroud)
但如果我打印@switch_ports,我只是看到了
data10data20changed0
Run Code Online (Sandbox Code Playgroud)
所以它似乎只是将它们添加到数组中,(加入它们)如果我尝试循环数组并打印键,它也会失败.
我想我会因为把头撞到桌子上而变得迟钝.
1 - 你可以在一个数组中存储哈希吗?
2 - 你有一系列哈希吗?
试图得到......
switchports
0
data1
data2
changed
1
data1
....
Run Code Online (Sandbox Code Playgroud)
从而
foreach $port (@switchport) {
print $port['data1']
}
Run Code Online (Sandbox Code Playgroud)
将为数组中的所有哈希返回所有data1.
是的,我在Perl失败了
我有一个扩展Thread的线程.代码看起来有点像这样;
class MyThread(Thread):
def run(self):
# Do stuff
my_threads = []
while has_jobs() and len(my_threads) < 5:
new_thread = MyThread(next_job_details())
new_thread.run()
my_threads.append(new_thread)
for my_thread in my_threads
my_thread.join()
# Do stuff
Run Code Online (Sandbox Code Playgroud)
所以在我的伪代码中,我检查是否有任何作业(如数据库等),如果有一些作业,如果运行的线程少于5个,则创建新线程.
所以从这里,我检查我的线程,这是我卡住的地方,我可以使用.join()但我的理解是 - 然后等待它完成所以如果它检查的第一个线程仍在进行中,它然后等待直到完成 - 即使其他线程已完成....
那么有没有办法检查线程是否完成,然后删除它,如果是这样的话?
例如
for my_thread in my_threads:
if my_thread.done():
# process results
del (my_threads[my_thread]) ?? will that work...
Run Code Online (Sandbox Code Playgroud) 当我做某事的时候
sqlite.cursor.execute("SELECT * FROM foo")
result = sqlite.cursor.fetchone()
Run Code Online (Sandbox Code Playgroud)
我认为必须记住列似乎能够取出它们的顺序,例如
result[0] is id
result[1] is first_name
Run Code Online (Sandbox Code Playgroud)
有没有办法归还字典?所以我可以只使用结果['id']或类似的?
编号列的问题是,如果您编写代码然后插入一个列,您可能需要更改代码,例如first_name的result [1]现在可能是date_joined,因此必须更新所有代码...
我有这样的代码
name := 'Foo';
If name = 'Foo' then
result := TFoo.Create
else if name = 'Bar' then
result := TBar.Create
else if name = 'FooFoo' then
result := TFooFoo.Create;
Run Code Online (Sandbox Code Playgroud)
有办法吗?
result := $name.create
Run Code Online (Sandbox Code Playgroud)
或者某种基于变量值创建类的方法?
所有类都扩展了相同的基类.
我使用yii的内置迁移工具设置了我的第一个数据库迁移,本地我可以运行
./yiic迁移
我可以看到它说"这个迁移需要运行"并按Y并运行并且工作正常.
当我部署我的网站时,我可以自动运行该命令但不会传递Y.
是否有命令或网址我可以点击升级数据库而无需登录并按Y?
python ×7
arrays ×1
class ×1
coding-style ×1
dataformat ×1
delphi ×1
dictionary ×1
hashtable ×1
head ×1
libraries ×1
list ×1
mysql ×1
namespaces ×1
object ×1
oop ×1
perl ×1
php ×1
python-2.7 ×1
sqlite ×1
urllib2 ×1
yii ×1