我知道我们可以重载类实例的行为,例如 -
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吗?
我正在尝试使用 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 因为我不想限制键/值的计数和名称。它将有助于将来支持新的键/值。
它是一个在链表末尾添加节点的非常简单的程序。我不知道我在做什么错误。是否与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
我在许多地方都读过,阅读文件的最佳方法是: -
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) 我有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)