类
一、类的定义
(1)类用来描述具有相同的属性和方法的对象的集合。
人类===张三(两个眼睛、一个鼻子等)
(2)对象、实例变量、类变量、方法、实例
(3)定义一个类
class Hz(object): #新式类
pass
class Hz1():
pass
class Hz2:
pass
(4)类的格式
class Hz(object):
name="lisi"#类变量
def init(self,name,age): #构造函数
self.name=name # 实例变量
self.age=age ## 实例变量
def a(self): #一个函数,也叫方法
print(self.name)
def b(self): #方法
print(self.age)
def c(self):
print(self.name,self.age)
if name == 'main':
dx=Hz("zs",18) #创建类的对象dx ,调用函数
dx.a() #通过类的对象调用方法
dx.b()#通过类的对象调用方法
dx.c()
二、实例方法(self)、类的动态方法(cls)、静态方法(无)
class Hz1(object):
name=10
def init(self,name):
self.name=name #实例变量
def a(self):
print(self.name)
@classmethod #类方法
def b(cls): #
print(cls.name)
@staticmethod #静态方法也叫私有方法
def c():
print("wo是独立方法")
if name == 'main':
dx=Hz1("20")
dx.a()
dx.b()
dx.c()
(三)类的三大特性封装、多态、继承
(1)封装分为私有封装、公用封装私有封装方法:
class Hz1(object):
name=10
def init(self,name):
self.name=name #实例变量
def a(self):
print(self.name)
def __f(self):
print("f")
def m(self):
print(self.__f())
@classmethod #类方法
def b(cls): #
print(cls.name)
@staticmethod #静态方法也叫私有方法
def c():
print("wo是独立方法")
if name == 'main':
dx=Hz1("20")
dx.a()
dx.b()
dx.c()
# dx.f()
dx.m()
私有封装实例变量:class Hz1(object):
name=10
def init(self,name,age):
self.__name=name #实例变量
self.__age=age
def a(self):
print(self.name)
def __f(self):
print("f")
def m(self):
print(self.__f())
@classmethod #类方法
def b(cls): #
print(cls.name)
@staticmethod #静态方法也叫私有方法
def c():
print("wo是独立方法")
if name == 'main':
dx=Hz1("20",18)
print(dx.name)
print(dx.age)
继承:单继承:
class F(object):
def fh(self):
print("富豪")
class M():
def fp(self):
print("富婆")
class S(F):
def qg(self):
print("乞丐")
if name == 'main':
s=S()
s.qg()
s.fh()
多继承:class F(object):
def fh(self):
print("富豪")
class M():
def fp(self):
print("富婆")
class S(F,M):
def qg(self):
print("乞丐")
if name == 'main':
s=S()
s.qg()
s.fh()
s.fp()
多态:class Hz(object):
def init(self,a):
self.a=a
def ss(self):
print(self.a)
if name == 'main':
dx=Hz("中国")
dx.ss()
拓展:
1、装饰器
2、深浅拷贝
3、闭包4、生成器、迭代器
5、is 和==的区别