标签:私有 表示 外部 对象 bin def ... 默认 think
类的属性变量在类中称为类的属性,函数在类中称为类的方法,类的属性分为以下几种:
(1) 公有属性:在类中和类外都能调用的属性,定义的时候与变量的定义一致,如 color = ‘yellow‘
(2) 私有属性:不能在类外及被类以外的函数调用,定义的时候以双下划线开头,如__color = ‘yellow‘
(3) 内置属性: 由系统在定义类的时候默认添加的,定义的时候以前后双下划线构成,如 dict
#!/usr/bin/env python
class People(object):
color = ‘yellow‘ # 定义类的公有属性
__age = 30 # 定义类的私有属性
def think(self):
print self.__age # 只能在类里面调用私有属性
ren = People()
print ren.color # 可以在类外面调用公有属性
ren.think()
print ren.__dict__ # 系统已经定义好了内置属性,可以直接调用
变量在类中称为类的属性,函数在类中称为类的方法,类的方法分为以下几种:
(1) 公有方法:在类中和类外都能调用的方法
(2) 私有方法:只能在类里面被调用,不能被类的外部调用,定义的时候要在前面加上双下划线,如 def __think()
(3) 类方法:能被类直接调用的方法称为类方法,但要通过 classmethod() 函数处理后才能被类直接调用
(4) 静态方法:静态方法相当于全局函数,可以被类直接调用,但要通过 staticmethod() 处理后才能被直接调用,注意静态方法没有 self 参数
实例:
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
def __talk(self): # 定义私有方法,需要在前面添加双下划线
print "I am talking with Tom"
def test(self): # 定义公有方法,方法的定义和函数一样,但是需要 self 作为第一个参数,表示执行对象本身
self.__talk() # 在类的内部调用私有方法
jack = People()
jack.test()
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
def test(self): # 定义公有方法
print "Testing......"
cm = classmethod(test) # 通过 classmethod 函数转换成类方法
jack = People()
People.cm() # 公有方法是不可以通过类直接调用的,只能通过对象来调用,但转换成类方法之后,就可以通过类直接调用
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
def test(): # 在类中定义方法如果没有加 self 参数只能称其为函数
print "Testing......"
sm = staticmethod(test) # 通过 staticmethod 函数转换成静态方法
jack = People()
People.sm() # 静态方法可以通过类直接调用
所谓内部类,就是在类的内部定义的类,主要的目的是为了更好的抽象现实世界
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
class Chinese(object): # 定义内部类
print "I am chinese"
jack = People.Chinese() # 可以通过外部类调用内部类然后再实例化一个对象
#!/usr/bin/env python
class People(object):
color = ‘yellow‘
__age = 30
class Chinese(object): # 定义内部类
print "I am chinese"
ren = People() # 可以先实例化外部类
jack = ren.Chinese() # 再通过对象实例化内部类
标签:私有 表示 外部 对象 bin def ... 默认 think
原文地址:http://blog.51cto.com/jacksoner/2059624