python中的类1、类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。2、变量称为属性3、方法称为行为4、对象是类的实例。在教室里面的每个同学都是人类这个类的一个具体的对象,然后对象又称为实例【实际存在的例子】5、实例化:根据一个类创建不同的对象的过程叫做实例化6、方法:就是类里面定义的函数7、类变量:人类所共有的属性 head = 1
8、实例变量:对象或者实例所独有的9、类是用class 来定义,类名称首字母要大写class People(object): #新式类class People: 经典类10、类里面定义一个方法需要空一个tab键11、如果不定义方法就使用默认的构造方法
构造函数;里面一般就是用来定义实例变量的,在调用实例方法的时候会自动优先执行构造函数class People(object): #object称为父类,基类,也是一切的父类
head=1 #这是类变量
构造函数,也叫构造方法,作用是为了创建对象用的
双下划线表示私有的方法
def __init__(self,name,age): # name为形式参数
self.a=name # self.a称为实例变量,实例变量是实例独有的,self是当前类的对象本身
self.age=age #age 为私有变量
实例方法
def play(self):
print(self.a+'找点乐子')
创建一个对象
实例化一个对象
p=People('小刘',18) # 创建一个对象p,这个对象名字叫小刘
p2=People('毛毛')
p.play()
p2.play()
实例方法
def play(self):
print(self.a+'去打篮球')
@classmethod
def func2(cls):
print('这是个类方法')
@staticmethod
def f():
print('这是个静态方法')
def __f2(self):
print('私有方法')
可通过创建一个实例方法来应用私有变量的结果
def f3(self):
return self.__f2()
def f4(self):
return self.__age
p=People('小刘',18)
1、类和对象调用类变量,实例变量
print(People.head)
print(People.name)
print(p.head)
print(p.name)
2、类和对象调用实例方法,类方法静态方法
People.play(p) # 类调用实例方法报错,但是传入一个对象,表示具体哪个对象去打篮球
People.func2() # 类调用类方法
People.f() # 类调用静态方法
p.play() # 对象调用实例方法
p.func2() # 对象调用类方法
p.f() # 对象调用静态方法
3、类和对象调用私有方法和私有变量
People.__f2 # 报错
p.f2() # 两个调用都会报错
People.f3() # 报错,类不能直接调用实例方法
p.f3() # 对象调用实例方法
print(p.__age) # 对象不能调用私有变量
print(p.f4()) # 对象调用实例方法引用到的私有变量结果
print(People.f4(p)) #类调用实例方法需要传对象
调用私有方法和私有变量总结:
私有方法和私有变量都不能直接被类和对象所调用,必须先在类的内部通过创建实例方法引用私有变量和私有方法,并将其结果进行返回给实例方法。然后再再类外部通过类和对象调用实例方法,就可以得到私有变量和私有方法的结果
python 中类的三大特性
2、封装特性
class People(object):
def __init__(self,name):
self.__name = name # 双下划线开头代表为私有变量,,只能在内部使用
def setName(self,newname):
self.__name = newname # 设置值
def getName(self):
return self.__name # 取值
p = People("xiaowang")
print(p.__name) #报错 对象和类不能直接调用私有变量和私有方法
p.setName("xiaoxiaoming")
print(p.getName())
继承
class Father(object):
def __init__(self): # 默认构造函数
pass
def smoke(self):
print('抽烟')
def rich(self):
print('有钱')
def play(self):
print('打牌')
class Son(Father): # 子类继承父类,也可继承多个父类class Son(Father,A,B)
def __init__(self):
Father.__init__(self) # 继承父类构造函数
def car(self):
print('车')
def girl(self):
print('美女')
def play(self):
print('打球')
a=Son()
a.car() # 车 保留自身特性
a.smoke() # 抽烟 调用父类特性
a.rich() # 有钱
a.play() # 打球 调用自身特性
多态(方法的重写)
class Animal(object):
def talk(self):
print('我是动物')
class Cat(Animal):
def talk(self):
print('喵喵')
class Dog(Animal):
def talk(self):
print('旺旺')
a=Animal()
a.talk() # 我是动物
b=Cat()
b.talk() # 喵喵
c=Dog()
c.talk() # 旺旺 |
|
|
|