类:类是一个抽象的模板,用来描述具有相同属性和方法的对象集合。
定义类的语法:
在Python中,类使用class关键字进行定义,类名通常使用首字母大写的驼峰命名法。类名字后面紧跟着(object),在python中,所有的类都继承了object类。继承object类可写可不写。
所以以下两种写法都是合法的:
# 定义一个类
class Animals(object):
pass
class Animals:
pass
实例:创建对象的过程是在内存中开辟一块区域来存储这个对象,这个内存区域由对应的地址标识。对象是类的实例,即类的具体实现。
实例化一个类的语法:通过类名和参数列表可以进行类的实例化。
class Animals(object):
def __init__(self, name, age):
self.name = name
self.age = age
cat = Animals(name='啾咪', age=3)
类的变量和实例变量:
类变量
1、类变量就是该类所有实例共享的属性和方法,也叫类属性,所有由此类实例化的对象都有此属性,并且不能修改。
2、类属性的一个常见用途是存储与类相关的常量或共享的状态信息。例如,用户身份、中间件链接配置信息等。
3、类可以定义一些私有属性,两个下划线开头的属性是私有的,其他为公共的,类内部可以直接访问私有属性,类的外部不能直接访问私有属性,类外部可以通过”_类名__私有属性名“ 访问私有属性。
实例变量:
1 每个实例独有的属性也叫实例属性,这种定位为实例变量,比如定义一个动物类,每个动物都有叫声,但是叫声都不同,这个是属于不同实例的独有属性,就要定义为实例属性
2 定义实例属性一般使用 init 方法,此方法第一个参数永远是 self,表示创建的实例本身,因此,在 init 方法内部,就可以把各种属性绑定到 self,因为 self 就指向创建的实例本身。
3、针对实例属性可以定义一些私有的实例属性,这些私有属性的定义是在前面加两个下划线,私有属性可以在类中调用,如果在类外部被调用通过 ”_类名__私有属性名“ 访问私有属性
class Animals:
from = '大自然' # 类属性,不管多少个实例,这个不会变化
__owner = '人类' # 类的私有属性,主人是史策
def __init__(self, say, age):
self.say = say # 实例属性,不同实例有不同的值
self.owner = self.__owner # 私有属性可以直接在类内部调用
self.__age = age # 实例的私有属性
dog = Animals('汪汪汪', 10)
print(dog.from) # 实例化对象可以直接调用类的非私有属性
print(dog.say) # 汪汪汪
print(dog.owner) # 人类
print(Animals._Animals__owner) # 实例化对象不能直接调用类私有属性,如果需要调用私有属性可以使用这种方式:类名._类名__私有属性
print(dog._Animals__age) # 实例的私有属性可以通过实例._类名__私有属性来调用
输出:
大自然
汪汪汪
人类
人类
10