12-06

一、类的属性
1.类的组成由属性和方法组成,属性可以称为成员变量,方法可以称为成员函数。
2.对象的创建,创建对象的过程称之为实例化。当一个对象被创建后,包含三个方面的特性:1.对象句柄 2.属性 3.方法。
句柄:用于区分不同的对象。
对象的属性和方法与类中的成员变量和成员函数对应。
在类里面的属性和方法叫做成员变量和成员函数,在实例化后,调用这些变量和函数,就叫做对象属性和对象方法。
3.类的属性,类的属性按使用范微分为公有属性和私有属性,类的属性范围取决于属性的名称。
公有属性:在类中和类外都能调用的属性。
私有属性:不能在类外以及类以外的函数调用。
私有属性的定义方式:以__双下划线开始的成员变量就是私有属性,可以通过instance.classname_attribute方式访问。
内置属性:由系统在定义类的伤害默认添加的,有前后双下划线构成,__dict__, __module__。

比如:
class People(object):
    color = 'yellow'  #这就是一个公有属性,可以在类里和类外调用
    __age = 30       #这就是一个私有属性,只能在类里调用。
    def think(self):   
        self.color = "black"    
        print "i am a %s" % self.color
        print "i am a thinker"
  print(self.__age)    #调用age
ren = People()
print ren.color
ren.think() 
print(ren.__age)

可以看到在类里调用的__age成员变量可以调用出来,但是在类外就不行了。

如果想在外面看到的话可以这么看。但是不一般不建议这么做,在调试的时候可以用。class People(object):
       color = 'yellow'
     __age = 30
    def think(self):
        self.color = 'black'
        print(self.color)
ren = People()
print ren.color
ren.think()
print ren.__age
print ren._People__age  #这就可以看到内部的属性。还是建议放在成员函数里使用。

使用内部属性这么做直接使用对象属性的方式调用。

print ren.__dict__ 是属性所以没有括号。

把公有属性分成字典的类型了。

我们不光可以使用对象来访问类的属性,还可以通过类来访问类的属性。但是只能访问公有属性。

print people.color

4.对象属性修改。

class People(object):
       color = 'yellow'
     __age = 30
    def think(self):
        self.color = 'black'
        print(self.color)
ren = People()
ren.color = “白色人”   #通过对象属性修改color的值
print ren.color
ren.think()
print ren._People__age

可以发现,对象属性的值得变了,但是在类中的的属性的值没有改变还是yellow。

通过类名去访问内置属性

print People.__dict__

可以发现打印出了类里的所有属性对应的值。

二、类的方法
1.类的方法的定义和定义函数一样,但是需要self作为第一个参数,这个是必须要有的。self方法就是用来区分函数和类方法的。
类的方法分为:1.公有方法 2.私有方法 3.类方法 4.静态方法
公有方法:在类中和类外都可以调用的方法。和公有属性一样
私有方法:不能被类外部调用,在方法前面加上__双下划线就是私有方法。和私有属性一样。
类方法:被classmethod()函数处理过的函数,能被类所调用,也能被对象所调用(是继承的关系)
静态方法:相当于“全局函数”,可以被类直接调用,可以被所有实例化对象共享,通过staticmethod()定义,静态方法没有self参数。
--------------------- 
作者:shuaizy2017 
来源:CSDN 
原文:https://blog.csdn.net/shuaizy2017/article/details/79029301 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq495966654/article/details/85041023