码迷,mamicode.com
首页 > 其他好文 > 详细

类的属性、类的方法、类的内置方法

时间:2018-01-10 23:53:18      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:私有   表示   外部   对象   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!