小编Dom*_*icM的帖子

TypeError:缺少1个必需的位置参数:'self'

我是python的新手,已经撞墙了.我遵循了几个教程,但无法通过错误:

Traceback (most recent call last):
  File "C:\Users\Dom\Desktop\test\test.py", line 7, in <module>
    p = Pump.getPumps()
TypeError: getPumps() missing 1 required positional argument: 'self'
Run Code Online (Sandbox Code Playgroud)

我检查了几个教程,但似乎与我的代码没有任何不同.我唯一能想到的是python 3.3需要不同的语法.

主要内容:

# test script

from lib.pump import Pump

print ("THIS IS A TEST OF PYTHON") # this prints

p = Pump.getPumps()

print (p)
Run Code Online (Sandbox Code Playgroud)

泵类:

import pymysql

class Pump:

    def __init__(self):
        print ("init") # never prints


    def getPumps(self):
                # Open database connection
                # some stuff here that never gets executed because of error
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,"self"会自动传递给构造函数和方法.我在这做错了什么?

我使用的是Windows 8和python …

python python-3.x

168
推荐指数
6
解决办法
58万
查看次数

PySerial非阻塞读取循环

我正在读这样的串行数据:

connected = False
port = 'COM4'
baud = 9600

ser = serial.Serial(port, baud, timeout=0)

while not connected:
    #serin = ser.read()
    connected = True

    while True:
        print("test")
        reading = ser.readline().decode()
Run Code Online (Sandbox Code Playgroud)

问题是它阻止了其他任何事情的执行,包括瓶子py web框架.添加sleep()无济于事.

在ser.readline()中更改"while True""to":"不打印"test",这很奇怪,因为它在Python 2.7中有效.任何想法可能出错?

理想情况下,只有在可用时才能读取串行数据.数据每1,000毫秒发送一次.

python nonblocking pyserial python-3.x

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

移动触控设备上的固定背景图像滚动不会立即更新

CSS:

body{
margin:0 auto;
background-image:url("someURL"),
background-repeat:no-repeat;
background-attachment:fixed;
background-size:cover;
}
Run Code Online (Sandbox Code Playgroud)

这在现代浏览器中工作正常,滚动时图像保持不变.然而,在Android平板电脑上,图像不会立即更新.在您释放(移开手指)后,图像仅更新约半秒,而间隙仅为白色.

有没有解决这个问题,还是某些浏览器的行为?

css android scroll background-image touch

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

尝试返回布尔值时,TypeError("'bool'对象不可迭代",)

我有一个奇怪的问题.我有一个返回布尔值的方法.反过来我需要再次返回该函数的结果,因为我无法直接从前端调用该方法.这是我的代码:

# this uses bottle py framework and should return a value to the html front-end
@get('/create/additive/<name>')
def createAdditive(name):
    return pump.createAdditive(name)



 def createAdditive(self, name):
        additiveInsertQuery = """ INSERT INTO additives
                                  SET         name = '""" + name + """'"""
        try:
            self.cursor.execute(additiveInsertQuery)
            self.db.commit()
            return True
        except:
            self.db.rollback()
            return False
Run Code Online (Sandbox Code Playgroud)

抛出异常:TypeError("'bool'对象不可迭代",)

我根本没有得到这个错误,因为我没有试图"迭代"bool值,只是为了返回它.

如果我返回一个字符串而不是boolean或int它按预期工作.这可能是个问题?

追溯:

Traceback (most recent call last):
  File "C:\Python33\lib\site-packages\bottle.py", line 821, in _cast
    out = iter(out)
TypeError: 'bool' object is not iterable
Run Code Online (Sandbox Code Playgroud)

python bottle python-3.x

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

sqlite3.ProgrammingError:无法在已关闭的数据库上运行.[Python] [sqlite]

我正在使用一个通用函数来执行类中的所有sqlite查询.一切正常,直到我在列表中使用带有多个项目的for循环.

这是执行sqlite查询的常用函数:

def executeQuery(self, query, params = ()):
        results = {}
        try:
            cur = self.conn.cursor()
            cur.execute(query, params)
            self.conn.commit()
            rows = cur.fetchall()

            results['status'] = 'success'
            result = []
            if rows:
                column = map(lambda x: x[0], cur.description)
                for row in rows:
                    result.append( dict(zip(column, row)) )

            results['results'] = result

        except self.conn.Error, e:
            if self.conn:
                self.conn.rollback()

            print "Error: %s" % e.args[0]
            results['status'] = 'failure'
            results['results'] = e.args[0]

        finally:
            if self.conn:
                self.conn.close()

        return results
Run Code Online (Sandbox Code Playgroud)

这是让我得到数据库关闭错误的循环:

stages = self.getStageByDate(2000)
        for stage in stages['results']:
            print stage['name']
            additives …
Run Code Online (Sandbox Code Playgroud)

python sql sqlite python-2.7

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

如何检测jQuery UI无线电更改事件?

我有2个无线电控制:

<fieldset id="sort">
                <label for="sort">Sort: </label>
                <input class="sortDirection" type="radio" id="asc" name="sortDirection"><label for="asc">asc</label>
                <input class="sortDirection" type="radio" id="desc" name="sortDirection"><label for="desc">desc</label>
</fieldset>
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的jquery:

$(document).ready(function(){
        $('#sort').buttonset();
});

$('#asc').on("change", function(event){
        alert("CHANGE EVENT!");
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过(结果相同):

$('#sort input[type="radio"]').on("change", function(event){
        alert("CHANGE EVENT!");
});
Run Code Online (Sandbox Code Playgroud)

警报永远不会执行.我在这做错了什么?

jquery events jquery-ui radio-button

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

无法让Isotope使用AJAX(代码示例)

我正在尝试整合同位素,但是我在使用ajax时遇到了问题.

这是代码:

<script type="text/javascript">

var currentPage = 1;

$(function(){
    var getUrl = 'loadMovies.php';
    var getQuery = 'genrefilter='+movieSelection.elements["genreFilter"].value;
    getQuery += '&yearfilter='+movieSelection.elements["yearFilter"].value;
    getQuery += '&titlesort='+movieSelection.elements["titleSort"].value;
    getQuery += '&ratingsort='+movieSelection.elements["ratingSort"].value;
    getQuery += '&yearsort='+movieSelection.elements["yearSort"].value;
    getQuery += '&runtimesort='+movieSelection.elements["runtimeSort"].value;
    getQuery += '&currentPage='+currentPage;

    var $container = $('#movieBox');
    //$container.isotope({itemSelector: '.movie'});

    $.ajaxSetup({cache:false});  
    var ajax_load = "<img class='loading' src='images/load.gif' alt='loading...' />";

    //$("#genreFilter").change(function(){$container.isotope('insert', ajax_load).load(getUrl, getQuery);});


    $("#genreFilter").change(function(){$('#movieBox').html(ajax_load).load(getUrl, getQuery);});
});
Run Code Online (Sandbox Code Playgroud)

HTML只是""

随着同位素线的注释,我实际上得到了按预期显示的div,但由于我无法弄清楚如何在同位素线上工作,我无法使其工作.

我试图将同位素与"插入"方法结合起来,我在没有ajax的情况下开始工作.

摘自:http://isotope.metafizzy.co/docs/adding-items.html


"插入方法

更有可能的是,您希望使用insert方法,该方法执行addItems未命中的所有操作.insert会将内容附加到容器,过滤新内容,对所有内容进行排序,然后触发reLayout,以便正确布置所有项目元素.

var $newItems = $('<div class="item" /><div class="item" /><div class="item" />');
$('#container').isotope( 'insert', $newItems );
Run Code Online (Sandbox Code Playgroud)

最后一行是我需要与ajax线集成,但我只是看不到我可以放置它.香港专业教育学院尝试了几种方法,其中一种方法显示在注释掉的行中. …

ajax jquery jquery-isotope

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

如何在jquery ajax调用中动态传递数据参数(多个数据数组)

我有这个ajax代码:

return $.ajax({
        type: "POST",
        url: "somefile.php",
        cache:false,
        data: { "yfilter": $("#yearFilter").serializeArray(),
            "gfilter": $("#genreFilter").serializeArray() },
        dataType:"json",
        success: function(data){
            alert("success");
        }
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我需要动态传递数据参数.现在我需要上面的数据参数内容和一个字符串.

如何动态传递?/如何将其存储在变量中并将其传递给"data:"字段?

 { "yfilter": $("#yearFilter").serializeArray(),
    "gfilter": $("#genreFilter").serializeArray() }
Run Code Online (Sandbox Code Playgroud)

我试过JSON.stringify II无法让它工作,可能是因为数据是一个数组.

年份和流派数组直接来自jquery下拉菜单.它的选择就像它的#id一样"$("#yearFilter")".这是select表单元素.

<select multiple="multiple" name="yearFilter[]" class="filterChange" id="yearFilter">
Run Code Online (Sandbox Code Playgroud)

我在基层需要的是:

var someData = "";


    if(...){
        someData = { "yfilter": $("#yearFilter").serializeArray(),
                "gfilter": $("#genreFilter").serializeArray() };
    }
    else if(...){
        someData = "sampleString";
    }
Run Code Online (Sandbox Code Playgroud)

在ajax电话中:

...
data: someData,
...
Run Code Online (Sandbox Code Playgroud)

ajax jquery

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

什么HTML 5标签最适合分页容器?

我有一个div,其中只有与分页相关的内容.什么是最好的元素/标签使用?

我调查<nav>但它不适合作为分页不是主要导航.

<div class="paginationBar">
    <button class="previous">Previous</button>
          <button>1</button>
          <button>2</button>
          <button>3</button>
    <button class="next">Next</button>
</div>
Run Code Online (Sandbox Code Playgroud)

对我来说,外部div似乎可以放在一边,因为它与主要部分相关并且在文章元素之外.

我们非常欢迎任何其他改进/修复我的代码的建议.

html semantic-web semantic-markup

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

ItemRenderer更改背景颜色

我有一个项目渲染器,我想更改默认颜色:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx"
                initialize="init(event)"
                creationComplete="created(event)"
                dataChange="created(event)"
                width="100%"
                maxWidth="{FlexGlobals.topLevelApplication.width}"
                contentBackgroundColor.hovered="0xff0018"
                focusColor="0xff00ff"
                contentBackgroundAlpha="0.8">

        <s:states>
            <s:State name="normal"/>
            <s:State name="hovered"/>
            <s:State name="selected"/>
        </s:states>
Run Code Online (Sandbox Code Playgroud)

上述代码中的样式无效.

我也尝试将contentBackgroundColor添加到List元素,但只更改了列表的背景而不是项目.

css也不起作用:

s|ItemRenderer{
    backgroundColor:#2e2e2e;
}
Run Code Online (Sandbox Code Playgroud)

如何更改项呈示器的背景颜色?

我知道我可以去皮,但这对于一个简单的颜色变化来说是一种过度杀戮而且我很肯定我几年前都没有去皮.

apache-flex itemrenderer background-color flex4 flex4.5

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