小编Alo*_*kur的帖子

我们可以重载类对象的行为

我知道我们可以重载类实例的行为,例如 -

class Sample(object):  pass
s = Sample()
print s
<__main__.Sample object at 0x026277D0>
print Sample
<class '__main__.Sample'>
Run Code Online (Sandbox Code Playgroud)

我们可以改变结果print s:

class Sample(object):
  def __str__(self):
    return "Instance of Sample"
s = Sample()
print s
Instance of Sample
Run Code Online (Sandbox Code Playgroud)

我们可以改变结果print Sample吗?

python oop class python-2.7 python-3.x

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

argparse 可以接受参数值作为 key=val 对

我正在尝试使用 argparse 来实现以下选项(由于项目要求,不能使用 docopt 等任何其他工具):-

cli.py --conf key1=value1, key2=value2, kay3=value3
or
cli.py --conf key1=value1 key2=value2 key3=value3
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过type=json.loads或听从但没有帮助。一种可能的解决方案是使用type=str然后将其解析为dict. 你们知道我缺少的其他更好的解决方案吗?提前致谢。

注意-不能使用 --key1=value1 --key2=value2 --key3=value3 因为我不想限制键/值的计数和名称。它将有助于将来支持新的键/值。

python python-2.7 argparse

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

在链表的尾部插入一个节点 python HackerRank

它是一个在链表末尾添加节点的非常简单的程序。我不知道我在做什么错误。是否与hackerRank 的exoected 输出有关,或者我的代码中有错误。我正在尝试实现 Python2

class Node(object):

   def __init__(self, data=None, next_node=None):
       self.data = data
       self.next = next_node
def Insert(head, data):

    if (head.head == None):
        head.head = Node(data)
    else:
        current = head.head
        while (current.next != None) and (current.data == data):
                           current = current.next
        current.next = Node(data)
Run Code Online (Sandbox Code Playgroud)

这是问题的链接。 https://www.hackerrank.com/challenges/insert-a-node-at-the-tail-of-a-linked-list

python linked-list

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

为什么readline()效率不高

我在许多地方都读过,阅读文件的最佳方法是: -

with open(filename) as fo:
    for line in fo:
      print fo
Run Code Online (Sandbox Code Playgroud)

因为它在内存中一次只能读取一行,它允许我们一次处理一行然后读取下一行.

我相信对于fo.readline()来说也应该如此,它也应该在内存中一次只能读取一行.

Aprt处理文件结束并自动关闭文件对象,你们看到了其他任何优势吗?

for line in fo:
      print fo
Run Code Online (Sandbox Code Playgroud)

过度

fo.readline()
Run Code Online (Sandbox Code Playgroud)

python

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

如果object是某个其他对象的属性,如何使用与name对应的字符串来访问对象的attrbute

我有3个课程如下: -

class C(object):
    def __init__(self, v):
        self.var = v

class B(object):
    def __init__(self, c):
        self.c = c

class A(object):
    def __init__(self, b):
        self.b = b

I have created instances as 
c = C("required result")
b = B(c)
a = A(b)

>>> a.b.c.var
'required result'
Run Code Online (Sandbox Code Playgroud)

现在我需要将bcvar作为字符串传递给某个函数,并获得类似于样本函数的var值,如下所示 -

`sample(a, 'b.c.var')` should return 'required result'`
Run Code Online (Sandbox Code Playgroud)

什么应该是pythonic方式来实现这一点这是我的尝试: -

for attr in ('b', 'c', 'var'):
    a = getattr(a, attr)
>>> print a
required result
Run Code Online (Sandbox Code Playgroud)

python

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

标签 统计

python ×5

python-2.7 ×2

argparse ×1

class ×1

linked-list ×1

oop ×1

python-3.x ×1