没啥意思,照上面要写严谨的话__init__()方法里面也需要加判断,因为你初始化的时候已经传值进去了,这个时间点已经发生错误了
2017-10-03
不抄答案还过不去,非要print写成call 。。。in 。。。,有种莫名其妙的感觉,完成解释功能就行了还要规定单词?
2017-10-03
def name(*args, **kw):
print(*args) # hello word
print(args) # ('hello', 'word')
print(*kw) # name age
print(kw) # {'name': 'cpj', 'age': '12'}
name('hello', 'word', name="cpj", age="12")
print(*args) # hello word
print(args) # ('hello', 'word')
print(*kw) # name age
print(kw) # {'name': 'cpj', 'age': '12'}
name('hello', 'word', name="cpj", age="12")
2017-10-03
class Person(object):
__count = 0
def __init__(self, name):
Person.__count += 1
@classmethod
def how_many(self):
return Person.__count
print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
__count = 0
def __init__(self, name):
Person.__count += 1
@classmethod
def how_many(self):
return Person.__count
print Person.how_many()
p1 = Person('Bob')
print Person.how_many()
2017-10-02
class Person(object):
__count = 0
def __init__(self, name):
Person.__count += 1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
print 'attributeerror'
__count = 0
def __init__(self, name):
Person.__count += 1
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
print 'attributeerror'
2017-10-02
标准答案!!!
class Person(object):
__count = 0
def __init__(self, name):
self.name=name
Person.__count+=1
p1 = Person('Bob')
print p1._Person__count
p2 = Person('Alice')
print p2._Person__count
try:
print Person.__count
except AttributeError:
print 'attributeError'
class Person(object):
__count = 0
def __init__(self, name):
self.name=name
Person.__count+=1
p1 = Person('Bob')
print p1._Person__count
p2 = Person('Alice')
print p2._Person__count
try:
print Person.__count
except AttributeError:
print 'attributeError'
2017-10-02
python没有私有化,只是用一些技巧变成私有
私有的在内部可以访问,外部不能直接访问
可以用特殊方法访问 注释部分
class Person(object):
def __init__(self,name,score):
self.name=name
self.__score=score
p=Person('Bob',59)
print p.name
#print p._Person__score
try :
print p.__score
except AttributeError:
print 'attributeerror'
私有的在内部可以访问,外部不能直接访问
可以用特殊方法访问 注释部分
class Person(object):
def __init__(self,name,score):
self.name=name
self.__score=score
p=Person('Bob',59)
print p.name
#print p._Person__score
try :
print p.__score
except AttributeError:
print 'attributeerror'
2017-10-02
这样可能会比较理解一些,
*用来接收多余的元素,内部存储是一个元祖(tuple)
**用来接收多余的元素,内部存储其实是一个字典(dict)
**dict接收的也是一个字典,可以直接通过键值查找
*星号后面的名字随便起,相当于一个变量
class Person(object):
def __init__(self,name,gender,birth,**dict):
self.name=name
self.gender=gender
self.birth=birth
self.job=dict['job']
*用来接收多余的元素,内部存储是一个元祖(tuple)
**用来接收多余的元素,内部存储其实是一个字典(dict)
**dict接收的也是一个字典,可以直接通过键值查找
*星号后面的名字随便起,相当于一个变量
class Person(object):
def __init__(self,name,gender,birth,**dict):
self.name=name
self.gender=gender
self.birth=birth
self.job=dict['job']
2017-10-02