小编Nic*_*zet的帖子

左对齐和右对齐两个div标签的最佳方法是什么?

右对齐和左对齐网页上的两个div标签的最佳方法是什么?如果可能的话,我想要一个优雅的解决方案.

html alignment

44
推荐指数
3
解决办法
19万
查看次数

你如何检查是否绑定了python方法?

给定方法的引用,有没有办法检查方法是否绑定到对象?你还可以访问它绑定的实例吗?

python python-datamodel

33
推荐指数
3
解决办法
9978
查看次数

如何在Python 2.x中对对象执行自省?

我正在使用Python 2.x,我有一个我正在从以太召唤的对象; 关于它的文件不是特别清楚.我希望能够获得该对象的属性列表以及每个属性的类型.

同样,我想获得该对象的方法列表,以及我可以在该方法上找到的任何其他信息,例如参数的数量和它们各自的类型.

我有一种感觉,我只是在Google搜索中错过了正确的术语.并不是说我想破坏具体细节,但它是Active Directory,所以这总是很有趣.

python introspection python-datamodel

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

Python C扩展:文档的方法签名?

我正在编写C扩展,我想让我的方法的签名可见为内省.

static PyObject* foo(PyObject *self, PyObject *args) {

    /* blabla [...] */

}

PyDoc_STRVAR(
    foo_doc,
    "Great example function\n"
    "Arguments: (timeout, flags=None)\n"
    "Doc blahblah doc doc doc.");

static PyMethodDef methods[] = {
    {"foo", foo, METH_VARARGS, foo_doc},
    {NULL},
};

PyMODINIT_FUNC init_myexample(void) {
    (void) Py_InitModule3("_myexample", methods, "a simple example module");
}
Run Code Online (Sandbox Code Playgroud)

现在,如果(在构建它之后......)我加载模块并查看它的帮助:

>>> import _myexample
>>> help(_myexample)
Run Code Online (Sandbox Code Playgroud)

我会得到:

Help on module _myexample:

NAME
    _myexample - a simple example module

FILE
    /path/to/module/_myexample.so

FUNCTIONS
    foo(...)
        Great example function
        Arguments: (timeout, flags=None)
        Doc blahblah doc doc …
Run Code Online (Sandbox Code Playgroud)

python documentation python-c-api

12
推荐指数
2
解决办法
1632
查看次数

在python中获取对象的父命名空间?

在python中,可以使用'.' 为了访问对象的字典项.例如:

class test( object ) :
  def __init__( self ) :
    self.b = 1
  def foo( self ) :
    pass
obj = test()
a = obj.foo
Run Code Online (Sandbox Code Playgroud)

从上面的示例中,拥有'a'对象,是否有可能从它引用'obj',它是'foo'方法分配的父命名空间?例如,将obj.b更改为2?

python python-datamodel

9
推荐指数
3
解决办法
8715
查看次数

Python反射和类型转换

在Python中,str(),int(),float()等函数通常用于执行类型转换.但是,这些要求您在开发时了解要转换为的类型.我正在尝试编写的一些Python代码的子问题如下:

给出两个变量,foobar找到类型foo.(在开发时不知道,因为这是通用代码.)然后,尝试转换bar为任何类型foo.如果无法做到这一点,请抛出异常.

例如,假设您调用执行此操作的函数conv.它的签名看起来像

def conv(foo, bar) :
    # Do stuff.
Run Code Online (Sandbox Code Playgroud)

它会被称为:

result = conv(3.14, "2.718")  # result is now 2.718, as a float.
Run Code Online (Sandbox Code Playgroud)

python reflection introspection type-conversion python-datamodel

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

在查看dir中列出的属性和方法列表时,您如何知道属性和方法?

我正在努力学习用Python编程,并专注于更好地处理如何使用标准模块和其他模块.dir函数在解释器中似乎非常强大,但我想知道我是否因为缺少OOP背景而遗漏了某些内容.使用S.Lotts一书,我决定使用他的Die类来学习有关类和实例的语法和用法的更多信息.

这是原始代码:

class Die(object):
''' simulate a six-sided die '''
def roll(self):
    self.value=random.randrange(1,7)
    return self.value
def getValue(self):
    return self.value
Run Code Online (Sandbox Code Playgroud)

我正在看那个,在创建了一些实例后,我想知道单词value是否是某个关键字,以及在class语句中使用了word对象,所以我决定通过将类定义更改为以下内容来查找:

class Die():
''' simulate a six-sided die '''
def roll(self):
    self.ban=random.randrange(1,7)
    return self.ban
def getValue(self):
    return self.ban
Run Code Online (Sandbox Code Playgroud)

这个变化向我展示了我从我的实例中获得了相同的行为,但是当我执行dir时,实例中缺少以下方法/属性:

'__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__',
 '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__',
_repr__', '__setattr__', '__str__', '__weakref__'
Run Code Online (Sandbox Code Playgroud)

我还想到,当我在一个实例上做了一个dir时,我有一个额外的关键字禁令,我最终想到的是我的实例的一个属性.这有助于我理解我可以使用d1.ban来访问我的实例的值.我可以弄清楚这是一个属性的唯一原因是我键入了d1.happy并得到了一个AttributeError 我发现d1.GetValue是一个附加到Die的方法,因为这就是解释器告诉我的.

因此,当我尝试使用像BeautifulSoup这样复杂但有用的模块时,如何在输入dir(实例)后知道列出的内容是我的实例的属性还是我的实例的方法.我需要知道这一点,因为这个问题让我觉得有了属性我调用方法的结果和方法我在我的实例上调用一个函数.

这个问题可能过于冗长,但确实有助于我更好地理解属性和方法之间的区别.具体来说,当我看到在我的Die类的实例上调用dir的结果时,我看到了这一点

['__doc__', '__module__', 'ban', 'getValue', 'roll']
Run Code Online (Sandbox Code Playgroud)

因此,通过查看列表中的属性和方法而不必诉诸试验和错误或者输入hasattr(myInstance,suspAttributeName)来查看它似乎很有用.

在发布我试过的问题之后

for each in …
Run Code Online (Sandbox Code Playgroud)

python methods attributes python-datamodel

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

Python内省:如何获得对象属性的"未排序"列表?

以下代码

import types
class A:
    class D:
        pass
    class C:
        pass
for d in dir(A):
    if type(eval('A.'+d)) is types.ClassType:
        print d
Run Code Online (Sandbox Code Playgroud)

输出

C
D
Run Code Online (Sandbox Code Playgroud)

如何按照代码中定义这些类的顺序输出?即

D
C
Run Code Online (Sandbox Code Playgroud)

除了使用inspect.getsource(A)并解析之外,还有什么方法吗?

python introspection python-datamodel

4
推荐指数
3
解决办法
2725
查看次数

循环Python/IronPython对象方法

循环Python对象的方法并调用它们的正确方法是什么?

鉴于对象:

class SomeTest():
  def something1(self):
    print "something 1"
  def something2(self):
    print "something 2"
Run Code Online (Sandbox Code Playgroud)

python reflection ironpython introspection python-datamodel

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

使用super的问题(python 2.5.2)

我正在为我的程序编写一个插件系统,我无法解决一件事:

class ThingLoader(object):
'''
Loader class
'''

    def loadPlugins(self):
        '''
        Get all the plugins from plugins folder
        '''
        from diones.thingpad.plugin.IntrospectionHelper import loadClasses

        classList=loadClasses('./plugins', IPlugin)#Gets a list of 
        #plugin classes
        self.plugins={}#Dictionary that should be filled with 
        #touples of objects and theirs states, activated, deactivated.
        classList[0](self)#Runs nicelly
        foo = classList[1]
        print foo#prints <class 'TestPlugin.TestPlugin'>
        foo(self)#Raise an exception
Run Code Online (Sandbox Code Playgroud)

测试插件看起来像这样:

import diones.thingpad.plugin.IPlugin as plugin
   class TestPlugin(plugin.IPlugin):
       '''
     classdocs
    '''
    def __init__(self, loader):
        self.name='Test Plugin'
        super(TestPlugin, self).__init__(loader)
Run Code Online (Sandbox Code Playgroud)

现在IPlugin看起来像这样:

class IPlugin(object):
    '''
    classdocs
    '''
    name=''
    def …
Run Code Online (Sandbox Code Playgroud)

python introspection python-datamodel

2
推荐指数
1
解决办法
1298
查看次数

特定于上下文的拼写引擎

我相信你们中的一些人会看到Google Wave的演示.我特别想知道拼写检查技术.一个拼写检查器是多么具有革命性,它通过弄清楚一个单词在句子中出现在哪里来提出这些建议?

我之前没有见过这种技术,但其他地方有这样的例子吗?
如果有,那么代码示例和文献在其工作中是什么?

spell-checking google-wave

2
推荐指数
1
解决办法
1268
查看次数

Pythonic方式实现三个相似的整数范围运算符?

我正在研究一个循环问题.在这个问题中,我们将对象放在一个大小的环上MAX,并从(0到MAX-1)分配ID.

我有三个简单的函数来测试范围包含.inRange(i,j,k)测试i是否在循环区间[j,k [(Mnemonic is i inRange(j,k))中.并且我对范围有相同的] j,k [和] j,k].

这三种方法中的代码看起来从一种方法复制到另一种方法:

def inRange(i,j,k):
    """
    Returns True if i in [j, k[
    * 0 <= i, j, k < MAX
    * no order is assumed between j and k: we can have k < j
    """
    if j <= k:
        return j <= i < k
    # j > k :
    return j <= i or i < k

def inStrictRange(i,j,k):
    """
    Returns True if i in ]j, k[ …
Run Code Online (Sandbox Code Playgroud)

python operators

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

合并两个列表:具有相似键的聚合值

我有两个或更多的列表.有点像这样:

listX = [('A', 1, 10), ('B', 2, 20), ('C', 3, 30), ('D', 4, 30)]
listY = [('a', 5, 50), ('b', 4, 40), ('c', 3, 30), ('d', 1, 20), 
         ('A', 6, 60), ('D', 7, 70])
Run Code Online (Sandbox Code Playgroud)

我想获得移动这样的重复元素的结果:我的结果是从listX + listY获取所有列表,但是在重复的情况下,例如('A', 1, 10), ('D', 4, 30)listX 的元素被呈现或者在listY中退出.结果就这样吧

result = [('A', 7, 70), ('B', 2, 20), ('C', 3, 30), ('D', 11, 100),
          ('a', 5, 50), ('b', 4, 40), ('c', 3, 30), ('d', 1, 20)]
Run Code Online (Sandbox Code Playgroud)

(A, 7, 70)通过添加('A', 1, 10)和 …

python

0
推荐指数
1
解决办法
1641
查看次数