相关疑难解决方法(0)

__str__和__repr__之间的区别?

之间有什么区别__str____repr____str__

python repr magic-methods

2545
推荐指数
21
解决办法
61万
查看次数

何时在Python中使用%r而不是%s?

学习Python艰难之路第21页,我看到这个代码示例:

x = "There are %d types of people." % 10
...
print "I said: %r." % x
Run Code Online (Sandbox Code Playgroud)

为什么%r在这里使用而不是%s?你何时使用%r,何时使用%s

python string string-formatting

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

在Python中是否存在可变的命名元组?

任何人都可以修改namedtuple或提供替代类,以便它适用于可变对象吗?

主要是为了可读性,我想要类似于namedtuple这样做:

from Camelot import namedgroup

Point = namedgroup('Point', ['x', 'y'])
p = Point(0, 0)
p.x = 10

>>> p
Point(x=10, y=0)

>>> p.x *= 10
Point(x=100, y=0)
Run Code Online (Sandbox Code Playgroud)

必须可以腌制生成的对象.并且根据命名元组的特征,当表示时,输出的排序必须与构造对象时参数列表的顺序相匹配.

python mutable namedtuple

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

`__repr__`函数对正常函数的意义是什么?

我正在尝试用我自己学习python而且我坚持使用__repr__函数.虽然我已经阅读了很多帖子__repr__以及python文档.所以我决定在这里提出这个问题.下面的代码解释了我的困惑.

class Point:

    def __init__(self,x,y):
            self.x, self.y = x,y

    def __repr__(self):
        return 'Point(x=%s, y=%s)'%(self.x, self.y)

    def print_class(self):
        return 'Point(x=%s, y=%s)'%(self.x, self.y)



p = Point(1,2)

print p
print p.print_class()


Point(x=1, y=2)
Point(x=1, y=2)
Run Code Online (Sandbox Code Playgroud)

如果正常函数也可以执行类似的任务,那么__repr__结束print_class()(在我的情况下是正常函数)函数的额外优势是什么.

python python-2.7

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

在__repr __()函数中使用f-string时出错EOF

我正在使用Python 3.x,我正在尝试从__repr__函数中获取一个f-string报告,但我似乎无法获得以下格式化字符串,以便按照我期望的方式工作.

我经常收到"SyntaxError:解析时意外的EOF"

def __repr__(self):
    return f"Player has {'Soft' if self.soft > 0} {self.count}. Cards are {self.cards}."
Run Code Online (Sandbox Code Playgroud)

如果self.soft> 0},则给出错误的部分是{'Soft'.如果不清楚,我试图包含"Soft"IFF self.soft> 0这个词,如果没有,不要在字符串中添加任何单词.

python string repr eof f-string

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

通用或pythonic __repr__ 方法

我通常会写一个 a__repr__作为展示如何重新创建实例的方式。例如:

class Component:
    def __init__(self, start, end):
        self.start = start
        self.end = end
    def __repr__(self):
        return f'{self.__class__.__name__}(start={self.start}, end={self.end})'
Run Code Online (Sandbox Code Playgroud)

是否有一种“标准”的方式来编写__repr__,如果没有,是否有关于如何编写的建议选项/最佳实践,或者它完全是主观的?

python repr python-3.x

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

在 NLTK 中找不到 ghostscript 吗?

当我尝试使用块模块时,我正在玩 NLTK

enter import nltk as nk
Sentence  = "Betty Botter bought some butter, but she said the butter is  bitter, I f I put it in my batter, it will make my batter bitter."
tokens = nk.word_tokenize(Sentence)
tagged = nk.pos_tag(tokens)
entities = nk.chunk.ne_chunk(tagged) 
Run Code Online (Sandbox Code Playgroud)

当我输入时,代码运行良好

>> entities 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

enter code here Out[2]: Tree('S', [Tree('PERSON', [('Betty', 'NNP')]), Tree('PERSON', [('Botter', 'NNP')]), ('bought', 'VBD'), ('some', 'DT'), ('butter', 'NN'), (',', ','), ('but', 'CC'), ('she', 'PRP'), ('said', 'VBD'), ('the', 'DT'), ('butter', 'NN'), ('is', 'VBZ'), ('bitter', …
Run Code Online (Sandbox Code Playgroud)

python environment-variables ghostscript ipython nltk

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

python 3 - 在类中设置对象的名称

我想将类的名称设置为类中的一个变量,这样当我打印类时,我得到它们的名字,我已经尝试过设置__name__但是它不起作用.

这是我的班级

class SNMPData(object):
    def __init__(self, device='', speed_down=0, speed_up=0, bgp_peer_state='', bgp_summary='', error=''):
        self.device = device
        self.speed_down = speed_down
        self.speed_up = speed_up
        self.bgp_peer_state = bgp_peer_state
        self.bgp_summary = bgp_summary
        self.error = error
        self.__name__ = device
Run Code Online (Sandbox Code Playgroud)

我创建了一个对象列表,然后尝试打印它们

>>> list = [SNMPData(device='dev_1',speed_down=1),SNMPData(device='dev_2',speed_down=2)]
>>> print(list)
[<SNMPData object at 0x7ff052a42ef0>, <SNMPData object at 0x7ff052a42b38>]
>>>
Run Code Online (Sandbox Code Playgroud)

而不是在0x的SNMPData对象....是否可以打印

['SNMPData dev_1','SNMPData dev_2']
Run Code Online (Sandbox Code Playgroud)

代替?

python

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

Python命令行"characters"返回'characters'

在此先感谢您的帮助.

在命令行输入"example"时,Python返回'example'.我在网上找不到任何解释这个的东西.所有参考资料都在print命令的上下文中与字符串对话,我得到了关于使用双引号,单引号,三引号,转义命令等的所有材料.

但是,我无法解释为什么在命令行输入用双引号括起来的文本总是返回由单引号括起来的相同文本.是什么赋予了?谢谢.

python

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

Python中的家谱

我需要从一对夫妇开始对四代家谱进行建模。之后,如果我输入一个人的名字和“兄弟”或“姐妹”或“父母”之类的关系,我的代码应该输出该人的兄弟或姐妹或父母。我对 python 有一定的了解,并在 DSA 中自学。我想我应该将数据建模为字典并为具有两个根节点(即第一对节点)的树 DS 编码。但我不知道如何开始。我只需要知道如何开始对家谱进行建模以及如何进行编码的方向。先感谢您!

python algorithm family-tree

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