我正在写一些代码,需要一个文件名,打开文件,并parsing出一些数据。 我想在课堂上做这个。 以下代码工作: class MyClass(): def __init__(self, filename): self.filename = filename self.stat1 = None self.stat2 = None self.stat3 = None self.stat4 = None self.stat5 = None def parse_file(): #do some parsing self.stat1 = result_from_parse1 self.stat2 = result_from_parse2 self.stat3 = result_from_parse3 self.stat4 = result_from_parse4 self.stat5 = result_from_parse5 parse_file() 但是它涉及到把所有的parsing机制放在我的类的__init__函数的范围内。 现在这个简化的代码看起来很好,但是函数parse_file也有相当多的缩进级别。 我宁愿将函数parse_file()定义为类函数,如下所示: class MyClass(): def __init__(self, filename): […]
我想在pd.Dataframe设置多列的pd.Dataframe s(我有一个文件,我不得不手动parsing到列表的列表中,因为该文件不适合pd.read_csv ) import pandas as pd print pd.DataFrame([['a','1'],['b','2']], dtype={'x':'object','y':'int'}, columns=['x','y']) 我明白了 ValueError: entry not a 2- or 3- tuple 我可以设置它们的唯一方法是循环遍历每个列variables并用astype重铸。 dtypes = {'x':'object','y':'int'} mydata = pd.DataFrame([['a','1'],['b','2']], columns=['x','y']) for c in mydata.columns: mydata[c] = mydata[c].astype(dtypes[c]) print mydata['y'].dtype #=> int64 有没有更好的办法?
使用Python 3.4 asyncio库为代码编写unit testing的最佳方式是什么? 假设我想testing一个TCP客户端( SocketConnection ): import asyncio import unittest class TestSocketConnection(unittest.TestCase): def setUp(self): self.mock_server = MockServer("localhost", 1337) self.socket_connection = SocketConnection("localhost", 1337) @asyncio.coroutine def test_sends_handshake_after_connect(self): yield from self.socket_connection.connect() self.assertTrue(self.mock_server.received_handshake()) 当使用默认testing运行器运行此testing用例时,testing将始终成功,因为该方法只执行直到第一次yield from指令产生,然后在执行任何断言之前返回。 这导致testing总是成功。 是否有预构build的testing运行器能够处理这样的asynchronous代码?
在我的脚本中, requests.get永远不会返回: import requests print ("requesting..") # This call never returns! r = requests.get( "http://www.justdial.com", proxies = {'http': '222.255.169.74:8080'}, ) print(r.ok) 可能的原因是什么? 任何补救措施? 什么是使用默认超时?
所以,为了build立起来,我觉得我理解copy模块和copy.copy模块之间的差异,并且在成功之前使用了copy.copy和copy.deepcopy ,但是这是我第一次实际上重载__copy__和__deepcopy__方法。 我已经search了__copy__ ,查看了内置的Python模块来查找__copy__和__deepcopy__函数(例如sets.py , decimal.py和fractions.py )的实例,但是我仍然不能100%确定我说得对。 这是我的场景: 我有一个configuration对象,主要是由简单的属性组成(尽pipe它可能会有其他非原始对象的列表)。 最初,我将使用默认的一组值来实例化一个configuration对象。 该configuration将被交给多个其他对象(以确保所有对象以相同的configuration启动)。 但是,一旦用户交互开始,每个对象都需要能够独立地调整configuration,而不会影响对方的configuration(这对我说,我需要对我的初始configuration进行更深入的处理)。 这是一个示例对象: class ChartConfig(object): def __init__(self): #Drawing properties (Booleans/strings) self.antialiased = None self.plot_style = None self.plot_title = None self.autoscale = None #X axis properties (strings/ints) self.xaxis_title = None self.xaxis_tick_rotation = None self.xaxis_tick_align = None #Y axis properties (strings/ints) self.yaxis_title = None self.yaxis_tick_rotation = None […]
任何人都可以请解释使用WSGI VS uWSGI与Nginx的利弊。 目前我正在为Django网站构build一个生产服务器,但是我无法决定是否应该使用WSGI或uWSGI。 你能否详细解释一下每种configuration的区别? 哪个configuration应该最好? 提前致谢
我有一个pandas数据框,如: A 1 A 2 B 5 B 5 B 4 C 6 我想按第一列进行分组,并将第二列作为行中的列表: A [1,2] B [5,5,4] C [6] 是否有可能使用pandasgroupby做这样的事情?
学习了这个页面之后: http://docs.python.org/distutils/builtdist.html 我希望find一些setup.py文件来学习,以使我自己(与制作Fedora rpm文件的目标)。 这样的社区能否指出我有一些很好的例子?
我想在使用Debian 5的同一台服务器上托pipe几个站点,比如我有site1 , site2和site3 ,并假设我的ip是155.55.55.1 : site1: 155.55.55.1:80 , script at /opt/django/site1/ site2: 155.55.55.1:8080, script at /opt/django/site2/ site3: 155.55.55.1:8090, script at /opt/django/site3/ 这是我的Apache默认值: <VirtualHost *:80> ServerName / ServerAlias */ DocumentRoot /opt/django/site1/ LogLevel warn WSGIScriptAlias / /opt/django/site1/apache/django.wsgi Alias /media /opt/django/site1/media/statics Alias /admin_media /home/myuser/Django-1.1/django/contrib/admin/media </VirtualHost> <VirtualHost *:80> DocumentRoot "/usr/share/phpmyadmin" ServerName /phpmyadmin Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options […]
我是Python的新手,需要一些build议来实现下面的场景。 我有两个class级来pipe理两个不同注册商的域名。 两者都有相同的接口,例如 class RegistrarA(Object): def __init__(self, domain): self.domain = domain def lookup(self): … def register(self, info): … 和 class RegistrarB(object): def __init__(self, domain): self.domain = domain def lookup(self): … def register(self, info): … 我想创build一个Domain类,给定一个域名,根据扩展名加载正确的注册器类,例如 com = Domain('test.com') #load RegistrarA com.lookup() biz = Domain('test.biz') #load RegistrarB biz.lookup() 我知道这可以使用工厂函数来完成(见下文),但是这是做这件事的最佳方式还是使用OOPfunction有更好的方法? def factory(domain): if …: return RegistrarA(domain) else: […]