可见,只有以双下划线开头的"__job"不能直接被外部访问。
但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。
以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
但是,如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。
以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。
2015-10-15
class Person(object):
def __init__(self,name,gender,birth,job=None):
self.name = name
self.gender = gender
self.birth = birth
self.job = job
xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
print xiaoming.name
print xiaoming.job
def __init__(self,name,gender,birth,job=None):
self.name = name
self.gender = gender
self.birth = birth
self.job = job
xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student')
print xiaoming.name
print xiaoming.job
2015-10-14
def cmp_ignore_case(s1, s2):
u1 = s1.upper()
u2 = s2.upper()
if u1 < u2:
return -1
if u1 > u2:
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
u1 = s1.upper()
u2 = s2.upper()
if u1 < u2:
return -1
if u1 > u2:
return 1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2015-10-14
from __future__ import unicode_literals
s = u'am I an unicode?'
print isinstance(s, unicode)
字符串统一为unicode,不需要加前缀u的嘛,为啥示例必需加上u才能通过
s = u'am I an unicode?'
print isinstance(s, unicode)
字符串统一为unicode,不需要加前缀u的嘛,为啥示例必需加上u才能通过
2015-10-13
def format_name(s):
return s.capitalize()
print map(format_name, ['adam', 'LISA', 'barT'])
return s.capitalize()
print map(format_name, ['adam', 'LISA', 'barT'])
2015-10-12
我觉得老师讲得很棒,但是有些细节还不够完整。我把关于函数式编程的内容总结了一下:
http://blog.csdn.net/u012759878/article/details/49007869
欢迎各位共同交流~
http://blog.csdn.net/u012759878/article/details/49007869
欢迎各位共同交流~
2015-10-09
def is_need(item):
key = "__"
return item and not item.startswith(key) and not item.endswith(key)
print "result = ", filter(is_need, L)
key = "__"
return item and not item.startswith(key) and not item.endswith(key)
print "result = ", filter(is_need, L)
2015-10-07
def is_need2(item):
return len(item) >= 2 and item[0:2].find("__") and item[-2:].find("__")
f = lambda item: item and not item.startswith("__") and not item.endswith("__")
print "result2 = ", filter(is_need2, L)
print "lambda result = ", filter(f, L)
return len(item) >= 2 and item[0:2].find("__") and item[-2:].find("__")
f = lambda item: item and not item.startswith("__") and not item.endswith("__")
print "result2 = ", filter(is_need2, L)
print "lambda result = ", filter(f, L)
2015-10-07
import math
def is_sqr(x):
return math.ceil(math.sqrt(x))**2==x
print filter(is_sqr, range(1,100+1))
def is_sqr(x):
return math.ceil(math.sqrt(x))**2==x
print filter(is_sqr, range(1,100+1))
2015-10-05