类:
类是类别,是具有相同属性和方法的一组对象的集合,类是对象的抽象。
对象是类里具体的事物,用来描述客观事物的一个实体,由一组属性和方法构成,万物皆对象,
是为谁设定的,对象是数据和操作的封装,对象是独立的,但是对象之间可以互为作用。
属性:特征 方法: 行为
数据 动作
变量 操作
存储 要做的事
函数 (类中的函数都是方法)
定义一个类:class 类名首字母大写
class per: (object)默认自动
def abc(self) ————(默认self,自动生成)方法
tab=per() ————创建对象,对象名等于类名,(括号默认调用了类中的构造 方法和初始化方法)
tab.abc() ————调用类的方法
创建对象默认继承类的(object )属性,方法等 对象可以直接调用类中方法
对象可以直接创建属性,属于对象属性,不是类的属性,只能对象本身使用,不具有通用性,
可以写在方法里,其他对象调用也属于此对象属性。
self 指当前对象,方法里写入self属性,任何对象调用属性都可以使用,具有通用性,属于公共属性
__init__:初始化方法 (属于重写默认初始化方法)
def __init__(self,xx,xx,xx): xx——方法的参数 (参数写默认值情况下,对象可以不用传参)
self.xx=xx ——把方法参数作为公开属性 (对象可以通用)
创建类对象时 ,要给初始化属性传值,在对象调用方法时传属性值,对象.方法名(属性值)
__str__ :(默认调用对象时,产生str方法,使用对象属性,输出属性值) 默认:对象.方法(str)
输出对象属性,把属性值转为字符串输出,属性值为空默认输出对象地址(也属于重写了默认str的方法)
使用__str__方法:
用return 后面写字符串加上属性,输出对象的属性值
封装: 隐藏了内部结构,直接用来调用,
私有属性:把属性前面写__变成私有的属性,不能在外部用对象直接访问或更改属性,
可以定义一个单独的方法,在内部方法里访问和更改私有属性,输出只能调用方法,不能直接调用属性,
还可以定义set_ get_两个方法:
set_赋值——(可以写其他,最好写固定,大家都认识)
定义set_方法(参数,必须有)
self__属性变成私有属性
get_取值
定义get_方法(默认self属性)
return self 加私有属性取值
用对象加set_方法名传参(添加参数赋值,赋值必须有参数)
用对象加get_方法名取值 输出取值(没有参数)
私有方法:在外部对象不可以直接调用
自动销毁方法:
__del__ () :
当实例对象释放后或没有引用的时候,或程序结束的时候,程序自动调用__del__方法执行销毁,
如关闭一些数据,会一项项回收内存也可以手动调用
删除实例属性:del.对象名.属性 即可删除
类方法 :
@classmethod
def xxxx(cls): ————类方法(参数)
参数赋值类属性要加cls.——和对象self 用法一样
类名可以调用类方法 ——类名.方法名()
类方法只能访问类变量,不能访问实例变量,
定义类时会定义一个类空间,包括所有类成员:调用多次类方法也使用同一个空间
类属性(变量):大家公用的属性,作用: 节省内存空间,哪个实例需要哪个实例就可以调用,
类属性的初始值如果在方法里被改变,那么类属性的初始值也会跟着改变
当类属性(变量)和实例属性(变量)重名时,先找实例属性,没有在用类属性
属性方法:@property
把一个方法变成一个静态属性 (变量)———实例调用方法时不加()---实例.方法名
无法给属性传参,如果想给属性赋值传值,需要在写一个相同名字的方法 用法@方法名.setter ,直接给属性赋值传值
如果想删除属性,用法@方法名.deleter ,在写一个相同名称的方法 del 删除属性
实际应用:当需要把方法内不同的状态输出时,可以转成属性值输出
对象方法:
对象可以直接调用类方法,多个对象调用相同的类方法也使用同一个类空间
类名不可以直接调用对象方法()必须创建一个对象来调用对象方法
创建对象时会默认创建一个空间,每一个对象都有自己的空间,包含所有对象成员 ,不同对象的属性输出在各自的空间
对象成员——对象属性,对象方法(self)
静态方法:
@staticmethod
def xxx(): 就是一个函数(如果传了形参,调用方法时也必须传入参数)
不属于类方法 也不属于对象方法,(跟类和对象无关的时候可以用静态方法)
静态方法中实际不可以使用任何类或实例的方法,属性 cls.,self.
但是可以用类调用静态方法,也可以用对象调用静态方法
构造方法:
__new__:
def __new__(cls,*关键字参数**动态参数,)默认类方法 ,参数必须和初始值参数一致
( __new__创建对象空间,__init__生成对象的初始值——先输出__new__创建空间,在输出__init__给对象赋值)
用来创建对象 ,默认在生成对象之前调用,必须有返回值return
return object.__new__(cls) ---(固定格式返回属性参数)
单例模式:
类里只能生成一个对象,创建多个对象会用同一个地址,
类是类别,是具有相同属性和方法的一组对象的集合,类是对象的抽象。
对象是类里具体的事物,用来描述客观事物的一个实体,由一组属性和方法构成,万物皆对象,
是为谁设定的,对象是数据和操作的封装,对象是独立的,但是对象之间可以互为作用。
属性:特征 方法: 行为
数据 动作
变量 操作
存储 要做的事
函数 (类中的函数都是方法)
定义一个类:class 类名首字母大写
class per: (object)默认自动
def abc(self) ————(默认self,自动生成)方法
tab=per() ————创建对象,对象名等于类名,(括号默认调用了类中的构造 方法和初始化方法)
tab.abc() ————调用类的方法
创建对象默认继承类的(object )属性,方法等 对象可以直接调用类中方法
对象可以直接创建属性,属于对象属性,不是类的属性,只能对象本身使用,不具有通用性,
可以写在方法里,其他对象调用也属于此对象属性。
self 指当前对象,方法里写入self属性,任何对象调用属性都可以使用,具有通用性,属于公共属性
__init__:初始化方法 (属于重写默认初始化方法)
def __init__(self,xx,xx,xx): xx——方法的参数 (参数写默认值情况下,对象可以不用传参)
self.xx=xx ——把方法参数作为公开属性 (对象可以通用)
创建类对象时 ,要给初始化属性传值,在对象调用方法时传属性值,对象.方法名(属性值)
__str__ :(默认调用对象时,产生str方法,使用对象属性,输出属性值) 默认:对象.方法(str)
输出对象属性,把属性值转为字符串输出,属性值为空默认输出对象地址(也属于重写了默认str的方法)
使用__str__方法:
用return 后面写字符串加上属性,输出对象的属性值
封装: 隐藏了内部结构,直接用来调用,
私有属性:把属性前面写__变成私有的属性,不能在外部用对象直接访问或更改属性,
可以定义一个单独的方法,在内部方法里访问和更改私有属性,输出只能调用方法,不能直接调用属性,
还可以定义set_ get_两个方法:
set_赋值——(可以写其他,最好写固定,大家都认识)
定义set_方法(参数,必须有)
self__属性变成私有属性
get_取值
定义get_方法(默认self属性)
return self 加私有属性取值
用对象加set_方法名传参(添加参数赋值,赋值必须有参数)
用对象加get_方法名取值 输出取值(没有参数)
私有方法:在外部对象不可以直接调用
自动销毁方法:
__del__ () :
当实例对象释放后或没有引用的时候,或程序结束的时候,程序自动调用__del__方法执行销毁,
如关闭一些数据,会一项项回收内存也可以手动调用
删除实例属性:del.对象名.属性 即可删除
类方法 :
@classmethod
def xxxx(cls): ————类方法(参数)
参数赋值类属性要加cls.——和对象self 用法一样
类名可以调用类方法 ——类名.方法名()
类方法只能访问类变量,不能访问实例变量,
定义类时会定义一个类空间,包括所有类成员:调用多次类方法也使用同一个空间
类属性(变量):大家公用的属性,作用: 节省内存空间,哪个实例需要哪个实例就可以调用,
类属性的初始值如果在方法里被改变,那么类属性的初始值也会跟着改变
当类属性(变量)和实例属性(变量)重名时,先找实例属性,没有在用类属性
属性方法:@property
把一个方法变成一个静态属性 (变量)———实例调用方法时不加()---实例.方法名
无法给属性传参,如果想给属性赋值传值,需要在写一个相同名字的方法 用法@方法名.setter ,直接给属性赋值传值
如果想删除属性,用法@方法名.deleter ,在写一个相同名称的方法 del 删除属性
实际应用:当需要把方法内不同的状态输出时,可以转成属性值输出
对象方法:
对象可以直接调用类方法,多个对象调用相同的类方法也使用同一个类空间
类名不可以直接调用对象方法()必须创建一个对象来调用对象方法
创建对象时会默认创建一个空间,每一个对象都有自己的空间,包含所有对象成员 ,不同对象的属性输出在各自的空间
对象成员——对象属性,对象方法(self)
静态方法:
@staticmethod
def xxx(): 就是一个函数(如果传了形参,调用方法时也必须传入参数)
不属于类方法 也不属于对象方法,(跟类和对象无关的时候可以用静态方法)
静态方法中实际不可以使用任何类或实例的方法,属性 cls.,self.
但是可以用类调用静态方法,也可以用对象调用静态方法
构造方法:
__new__:
def __new__(cls,*关键字参数**动态参数,)默认类方法 ,参数必须和初始值参数一致
( __new__创建对象空间,__init__生成对象的初始值——先输出__new__创建空间,在输出__init__给对象赋值)
用来创建对象 ,默认在生成对象之前调用,必须有返回值return
return object.__new__(cls) ---(固定格式返回属性参数)
单例模式:
类里只能生成一个对象,创建多个对象会用同一个地址,