标签:字母 类型 输入参数 object 不能 class 对象创建 优先 count
面向对象变成的基本思想:类和实例
类用于定义抽象类型---------------------人-----------------------------class Person(object):------------------数据封装class Person(object):
pass def __init__(self,name):
self.name = name
实例根据累的定义被创建出来---------小明、小红-----------------p1 = Person()------------------------------p1 = Person(‘xiaoming‘)
p2 = Person() p2 = Person(‘xiaohong‘)
(1)类关键字class,类名以大写字母开头,创建实例使用类名+()
(2)类属性只调用一次(和实例化多少次没有关系);__init__()方法中的属性是实例属性,每次实例化一次就调用一次
(3)实例小明、小红除了地址不一样意外,没有什么其他不同,现实世界中区分小明、小红要依靠他们各自的名字、性别、生日等属性,所以可以在类中的__init__方法中添加属性name,在实例化时输入参数,然后取值p1.name就可以了
(4)__init__()方法的第一个参数必须是self,后续参数自由指定,实际情况需要传入什么参数就定义什么参数,和定义函数没有任何区别
(5)__init__()方法中,只有以双下划线开头__xxx的属性不能直接被外部访问,预定义属性通常用__xxx__表示,作为预留字段
(6)类是模板,实例是根据模板创建的对象,所以对象创建完以后,无论在外部怎么改变对象的属性和方法,模板中的数据是完全不受影响的。
(7)实例属性每个实例各自拥有,互相独立,模板属性有且仅有一份,所有实例共同拥有
(8)模板属性和实例属性重名时,实例属性优先级高(注意:一般实例属性方法和模板属性方法名称不要定义一样)
(9)私有类属性和实例属性不能在外部用类和实例直接访问,但是可以在内部__init__方法中print私有类属性Person.__count和实例属性self.__name,这样就可以访问了
(10)实例和类中的属性调用方式:实例p1.属性,,实例p1.方法,,类Person.属性,,类Person.方法
在class中第一的全部是实例方法,实例方法第一个参数self是实力本身
(11)实例方法:def get_grade(self):,第一个参数为self,方法中可以直接调用实例属性,,调用实例方法必须在实例上调用
(12)类方法:@classmethod,参数为cls表示类本身,类方法在类上调用
标签:字母 类型 输入参数 object 不能 class 对象创建 优先 count
原文地址:https://www.cnblogs.com/hpzyang/p/10204710.html