小编And*_*unt的帖子

python中的双下划线

class A(object):
    def __get(self):
        pass

    def _m(self):
        return self.__get()


class B(A):
    def _m(self):
        return str(self.__get())

print(A()._m())
print(B()._m())
Run Code Online (Sandbox Code Playgroud)

为什么print(A()._m())打印None,但print(B()._m())加注AttributeError: 'B' object has no attribute '_B__get'

我认为双下划线可以防止方法覆盖.

UPDATE

你写的__get是私人的.

那为什么以下工作呢?

class A(object):
    def __get(self):
        pass

    def _m(self):
        return self.__get()


class B(A):
    pass

print(A()._m())
print(B()._m())
Run Code Online (Sandbox Code Playgroud)

为什么这段代码不会引发AttributeError和打印None两次?

python

9
推荐指数
1
解决办法
3102
查看次数

AttributeError:找不到函数'GetConsoleScreenBufferInfoEx'

当我尝试在Windows上运行pytest时,这就是我得到的.

有任何想法吗?

在谷歌找不到任何东西.

也许,这是一个32/64位或缺少包的问题?

真的第一次看到这个错误,似乎ctypes有问题.

  File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "C:\Python27\lib\runpy.py", line 72, in _run_code
    exec code in run_globals
  File "C:\Python27\Scripts\py.test.exe\__main__.py", line 9, in <module>
  File "C:\Python27\lib\site-packages\_pytest\config.py", line 47, in main
    config = _prepareconfig(args, plugins)
  File "C:\Python27\lib\site-packages\_pytest\config.py", line 132, in _preparec
onfig
    pluginmanager=pluginmanager, args=args)
  File "C:\Python27\lib\site-packages\_pytest\vendored_packages\pluggy.py", line
 724, in __call__
    return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
  File "C:\Python27\lib\site-packages\_pytest\vendored_packages\pluggy.py", line
 338, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "C:\Python27\lib\site-packages\_pytest\vendored_packages\pluggy.py", line
 333, in <lambda>
    _MultiCall(methods, kwargs, …
Run Code Online (Sandbox Code Playgroud)

python windows pytest python-2.7

8
推荐指数
0
解决办法
299
查看次数

Django与ForeignKey值完全匹配

class Sentence(Model):
    name = CharField()

class Tokens(Model):
   token = CharField()
   sentence = ForeignKey(Sentence, related_name='tokens')
Run Code Online (Sandbox Code Playgroud)
  1. 我想实现两个案例:句子完全由三个令牌组成['I', 'like', 'apples'].所以列表sentence.tokens.all() 是完全正确的['I', 'like', 'apples'].

  2. 与上面相同,但包含令牌(句子的一部分).

Sentence.objects.annotate(n=Count('tokens',distinct=True)).filter(n=3).filter(tokens__name='I').filter(tokens__name='like').filter(tokens__name='apples')不起作用,因为它也匹配I I I.

有没有办法过滤ForeignKey中的确切值集?

django django-models

8
推荐指数
1
解决办法
274
查看次数

在django中将两个目录设为静态

我有两个目录.static包含javascript和css文件.在我写的设置中STATIC_URL = '/static/',它们被正确包含在内.

但我也有文件夹图像,有很多图像.我的问题如何使文件夹图像也静态,因为我无法复制到静态.

谢谢.

python django

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

正则表达式中的贪婪可选字符

我有两个问题。

  1. 如何让可选角色变得贪婪?我正在尝试编写自定义解析器,并希望函数参数位于括号中。例如sin x成为sin(x)cosh^2 x成为cosh^2(x)。我的正则表达式:

    input = 'sinh x'
    output=re.sub(r'(sin|cos|tan|cot|sec|csc)(h?)\s*(|\^\s*[\(]?\s*\-?\s*\d+\s*[\)]?\s*)?([a-z0-9]+)',r'\1\2\3(\4)', input)
    
    Run Code Online (Sandbox Code Playgroud)

    这很好用。但是当我输入sinh(x) (已经格式良好的表达式)时,它输出sin(h)(x). 如果 \4 中没有匹配项,我需要使 (h?) 贪婪或失败。怎么做?请注意,我不能写([a-gi-z0-9]),因为它sinh(h)是有效的。

  2. (h?)和之间有什么区别吗([h]?)

regex

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

在django中过滤prefetch_related为空

class Topping(models.Model):
    name = models.CharField(max_length=30)

class Pizza(models.Model):
    name = models.CharField(max_length=50)
    toppings = models.ManyToManyField(Topping)
Run Code Online (Sandbox Code Playgroud)

是否有可能选择配有他们的浇头的比萨饼,但只有那些有一定数量浇头的比萨饼,比如0,1,2?

django django-models django-orm

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

获取所选文本javascript的边界矩形

我使用此代码如何在用户文本选择旁边定位元素?获取所选文本的位置,但它不适用于输入中的选定文本.有时位置为0.

是否有一些检测所选文本位置的通用方法?

我想在mouseup上显示工具提示或dblclick选定的文本.

javascript

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

Python 确定是否 isinstance 而不检查超类

class A:
   pass

class B(A):
   pass
Run Code Online (Sandbox Code Playgroud)

如何在不引用的情况下检查它var是 的实例B,而不是. 我有大约 50 个类,它们是某些类的子类。我想检查实例是否是一个孩子。就像是。AAnot isinstance(var, A)

有什么办法吗?

python

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

了解Django GenericForeignKey和GenericRelation

我正在建立词汇表,并具有以下模型:

class Word(Model):
 name = CharField(max_length=75)

class EnNoun(Model):
 word = OneToOneField(Word)

class FrNoun(Model):
 word = ForeignKey(Word)
 gender = CharField()
Run Code Online (Sandbox Code Playgroud)

EnNoun和中可以有相同的单词FrNoun。是否可以使用最少数量的查询(和语言和词性类似的类更多,例如)来为EnNoun和两者获取给定单词的结果?FrNounItAdverb

如何存储从一种语言到另一种语言的翻译(查询20个以上的表不是一种选择)。

GenericForeign什么用途的钥匙?我一般如何使用它们?

谢谢。

更新

有以下翻译课:

@python_2_unicode_compatible
class Translation(Model):
    from_content_type = ForeignKey(ContentType, related_name='from_word_content_type')
    from_object_id = UUIDField(default=uuid.uuid4)
    from_word = GenericForeignKey('from_content_type', 'from_object_id')

    to_content_type = ForeignKey(ContentType, related_name='to_word_content_type')
    to_object_id = UUIDField(default=uuid.uuid4)
    to_word = GenericForeignKey('to_content_type', 'to_object_id')
Run Code Online (Sandbox Code Playgroud)

但是它不起作用:字段“ to_word”不会生成自动反向关系,因此不能用于反向查询。如果它是GenericForeignKey,请考虑添加GenericRelation。

django django-models

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

Django ManytoMany过滤精确列表

假设我有一个id列表:c = ['1','2','3']

class Topic(Model):

 categories=ManyToManyField(Category)
Run Code Online (Sandbox Code Playgroud)

如何从c过滤具有精确且仅具有id的类别的主题?

django django-models

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