已采纳回答 / 慕娘8786788
getattr()可以看做多态的一种吧,既可以用来取student的名字,也可以取teacher的性别,方便修改,如果用s.name的话如果需要改成t.gender就比较麻烦了
2018-02-06
@property
def grade(self):
if self.__score >= 80:
return 'A'
return 'B' if self.__score>=60 else 'C'
def grade(self):
if self.__score >= 80:
return 'A'
return 'B' if self.__score>=60 else 'C'
2018-02-06
class Fib(object):
def __init__(self, num):
pass
def __call__(self, num):
L = [0,1]
for i in range(num-2):
L.append(L[-1] + L[-2])
return L
f = Fib(10)
print f(10)
def __init__(self, num):
pass
def __call__(self, num):
L = [0,1]
for i in range(num-2):
L.append(L[-1] + L[-2])
return L
f = Fib(10)
print f(10)
2018-02-06
已采纳回答 / 为彭十七加油oO
应该不是那个意思,因为r'...'本身在r后面有一个单引号',如果在后面又出现了',他就不知道在哪结束了啊。比如r'abcdefg'hijk'lmn'这种那raw转义字符串应该是在r'abcdefg'就结束了吧,但你的本意是ab...
2018-02-06
class Person(object):
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
for k,v in kw.iteritems():
setattr(Person, k, v)
p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course
def __init__(self, name, gender, **kw):
self.name = name
self.gender = gender
for k,v in kw.iteritems():
setattr(Person, k, v)
p = Person('Bob', 'Male', age=18, course='Python')
print p.age
print p.course
2018-02-06
@BUPTGHOST, 这位老哥, 再看一下最上面, print p 和 p 的区别你就知道为什么了, 当然咯, 这里不是Dos环境, 也验证不出来, 不过我觉得你有兴趣可以去试试
2018-02-06
import functools
sorted_ignore_case = functools.partial(sorted,key=str.upper)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
sorted_ignore_case = functools.partial(sorted,key=str.upper)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
2018-02-06
我认为老师最想表达的是, 因为Python是动态语言, 只有在运行时才做类型检查, 因此只要是同名的函数, 就能够被调用, 而不像C++中, 必须参数个数, 参数顺序, 参数类型相同才可以被特定的函数调用
2018-02-06