一、类的属性
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
版权声明:本文为博主原创文章,转载请附上博文链接!