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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类的属性类的方法类的内置方法相关的知识,希望对你有一定的参考价值。

类的属性

变量在类中称为类的属性,函数在类中称为类的方法,类的属性分为以下几种:

(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()              # 再通过对象实例化内部类

以上是关于类的属性类的方法类的内置方法的主要内容,如果未能解决你的问题,请参考以下文章

Python进阶-----类的内置item属性方法

python基础类的特殊成员(类的特殊内置属性和方法)

反射(高大上)类的内置方法

是否有 Python 方法可以访问类的所有非私有和非内置属性?

python—类的属性和方法总结

类的内置方法__