类
语法规则:
class 类名():
属性
方法
class Person():
name = '张三'
age = 19
def eat(self):
print('吃')
类属性
实例属性:实例对象的属性
定义在构造方法中的属性
共有实例属性:常规属性
私有实例属性:双下划线开头,只能够在自己的类中进行调用
语法:
对象名称.属性名称
类的内部使用:self.属性名称
class Person():
def __init__(slef,name,age,sex):
self.name = name
self.age = age
self.__sex = sex
def print_name(self):
print(f'{self.name}是我的名字')
xiaoming = Person('小明',19,'男')
xiaoming.print_name()
封装
#私有属性的set和get
class Person():
def set_name(self):
self.__name=name
def get_name(self):
return self.__name
类的公有方法和私有方法
公有方法
私有方法:双下滑线开头,只能在类中使用
class Person():
def print_name(self):
print("小明")
def __print_age(self):
print("18")
#通过共有方法包装一层,才可以正常调用
def p_age(self):
self.__print_age()
p = Person()
p.p_age()
继承
继承:继承用于类的创建上,新创建的叫子类,而被继承的叫做父类。子类可以使用父类属性,继承是描述类与类之间的关系。
继承的种类:python 里继承总共有单继承、多继承和多层继承。
#单继承
class A():
def __init__(self):
self.a = 'a'
def test_a(self):
print("aaaa")
class B(A):
def __init__(self):
self.b = 'b'
def test_b(self):
self.test_a()
print("bbbb")
obj = B()
obj.test_b()
#多继承
class A():
def __init__(self):
self.a = 'a'
def test_a(self):
print("aaaa")
class B():
def __init__(self):
self.b = 'b'
def test_b(self):
print("bbbb")
class C(A, B):
def __init__(self):
self.c = 'c'
def test_c(self):
self.test_a()
self.test_b()
#重写父类方法
class A():
def __init__(self):
self.a = 'a'
def test(self):
print("aaaa")
class B(A):
def __init__(self):
self.b = 'b'
super().__init__()
def test(self):
print("bbbb")
多态
同一种行为对不同的子类[对象]有不同的行为表现
1.必须存在一种继承关系,必须发生在父类和子类之间
2.重写:子类重写父类的方法
优点:
多态可以增加程序的灵活性
增加程序的扩展性
"""
面向对象 - 多态
"""
class Animal:
name = "Animal"
age = 0
def make_sound(self):
print("动物发音")
class Dog(Animal):
def make_sound(self):
print("汪汪")
class Cat(Animal):
def make_sound(self):
print("喵喵")
#animal
Animal = Animal()
animal.make_sound()
print("")
#dog
Animal = Dog()
dog.make_sound()
print("")
#cat
Animal = Cat()
cat.make_sound()