python day20

一  作日内容回顾

  类名称空间,对象名称空间。 

class A:
  home = '老男孩教育'
  name = '武大'
  def __init__(self, name, age):
    self.name = name
    self.age = age
  def job(self):
    print('我在开车.....')
a1 = A('alex',12)
a1.name ---> alex
A.age 找不到
a1.job = 'student'
a1.job

class A:

  home='老男孩教育'

  name='武大'

  count=0

  def __init__(self,name,age):

    A.count=A.count+1

    self.name.=name

    self.age=age

  def job(self):
    print(‘我在开车。。。’)

def func1():

  count=1

  def inner():

    print(count)

   inner()

func()

# def func1():
# count = 1
#
# def inner():
# print(count)
#
# inner()
#
#
# func1()


# class A:
# home = '老男孩教育'
# name = '武大'
# count = 0
#
# def __init__(self, name, age):
# print(A.count)
# self.name = name
# self.age = age
#
# def job(self):
# print('我在开车.....')
# print(A.home)
# print(A.job(11))

# 面试题:

class A:
a = 1
b = 2

def __init__(self):
c = 5

def func(self):
pass


a1 = A()
A.a = 10
A.b = 20
print(a1.a, a1.b, a1.c)
# print(A.a, A.b, A.c)

二  今日内容:

继承:

# class Cat:
# def __init__(self,name):
# self.name = name
#
# def call(self):
# print('喵喵叫')
# def eat(self):
# print('%s吃' % self.name)
# def drink(self):
# print('%s喝' % self.name)
# def pull(self):
# print('%s拉' % self.name)
# def sow(self):
# print('%s撒' % self.name)
# def sleep(self):
# print('%s睡' % self.name)
#
#
# class Dog:
# def __init__(self, name):
# self.name = name
#
# def call(self):
# print('汪汪叫')
#
# def eat(self):
# print('%s吃' % self.name)
#
# def drink(self):
# print('%s喝' % self.name)
#
# def pull(self):
# print('%s拉' % self.name)
#
# def sow(self):
# print('%s撒' % self.name)
#
# def sleep(self):
# print('%s睡' % self.name)
#
# class Chook:
# def __init__(self, name):
# self.name = name
#
# def call(self):
# print('大爷,来玩呀....')
#
# def eat(self):
# print('%s吃' % self.name)
#
# def drink(self):
# print('%s喝' % self.name)
#
# def pull(self):
# print('%s拉' % self.name)
#
# def sow(self):
# print('%s撒' % self.name)
#
# def sleep(self):
# print('%s睡' % self.name)

# 继承

# class Animal:
# def __init__(self, name):
# self.name = name
#
# def eat(self):
# print('%s吃' % self.name)
#
# def drink(self):
# print('%s喝' % self.name)
#
# def pull(self):
# print('%s拉' % self.name)
#
# def sow(self):
# print('%s撒' % self.name)
#
# def sleep(self):
# print('%s睡' % self.name)
#
#
# class Cat(Animal):
#
# def call(self):
# print('喵喵叫')
#
#
# class Dog(Animal):
#
# def call(self):
# print('汪汪叫')
#
#
# class Chook:
# def call(self):
# print('大爷,来玩呀....')


# cat1 = Cat('阿花')
# cat1.eat()
# cat1.drink()
# chook1 = Chook()
# chook1.call()

# 继承:子类继承父类的一切.
# class Cat(Animal)
# Animal 叫做父类,也叫作基类.
# Cat 叫做子类,也叫作派生类.

# 小练习:
# Animal 父类, 人,猫,狗 name,年龄,性别,父类里面再写一个方法:eat
# 继承最大的特点节省代码.与其他类发生关联.
class Animal:
nickname = '动物'
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex

def eat(self):
print("%s在吃东西" % self.name)
class Person(Animal):
pass
class Dog(Animal):
pass
class Cat(Animal):
pass
p1 = Person('太白',25,'男')
p1.eat()
dog1 = Dog('日天',6,'公')
dog1.eat()
print(p1.nickname)
# 为什么子类能找到父类的所有?? 存在父类指针的概念
print(Person.nickname)
# 类名,对象都可以找到父类的所有方法.
#python3x python2x
#python3x 类默认都继承object,继承object类的类叫做新式类.
#python2x 类默认什么不都继承,不继承object的类叫做经典类.如果在python2x中,你让他继承object类,就变成新式类了.

#继承去分:
# 单继承,多继承.
#单继承: 查询顺序一直向上(新式类,经典类一样.).

单继承:
# python3x   python2x
# python3x 类默认都继承object,继承object类的类叫做新式类.
# python2x 类默认什么不都继承,不继承object的类叫做经典类.如果在python2x中,你让他继承object类,就变成新式类了.

# 继承去分:
# 单继承,多继承.
# 单继承: 查询顺序一直向上(新式类,经典类一样.).


# class Animal:
# nickname = '动物'
#
# def __init__(self, name, age, sex):
# self.name = name
# self.age = age
# self.sex = sex
#
# def eat(self):
# print("%s在吃东西" % self.name)
#
#
# class Person(Animal):
#
# def speek(self):
# print('%s可以用语言交流' % self.name)
#
#
# class Brid(Animal):
#
# def __init__(self, name, age, sex, wing): # self = b1 对象空间
# # Animal.__init__(self,name,age,sex) # 第一种 如何在子类中执行父类方法
# super(Brid,self).__init__(name, age, sex) # 第二种 如何在子类中执行父类方法
# self.wing = wing
#
# def eat(self, food):
# super().eat()
# print('%s吃%s' % (self.name, food))
#
# def bite(self):
# print('%s可以啄人' % self.name)


# p1 = Person('太白',25,'男')
# print(p1.nickname)

b1 = Brid('鹦鹉', 12, '母', '大翅膀')
b1.eat('小米')
# print(b1.__dict__)
# b1.eat('小米')
# def func1(y,z,w):
# print(666)
# def func(x,y,z,w):
# func1(y,z,w)
# func(1,2,3,4)
# 在子类中,执行父类的方法
# Animal.__init__(self,name,age,sex) # 第一种
#用这种: super().__init__(name, age, sex) # 第二种 完整的写法 super(Brid,self).__init__(name, age, sex) 不提倡

多继承:

# 多继承:
# 新式类 : 广度优先

# class A:
# def func(self):
# print('A')
#
# class B(A):
#
# def func(self):
# print('B')
#
# class C(A):
# def func(self):
# print('C')
#
# class D(B,C):
#
# def func(self):
# print('D')
#
# d = D()
# d.func()

# class A:
# def func(self):
# print('A')
#
# class B(A):
#
# def func(self):
# print('B')
#
# class C(A):
# def func(self):
# print('C')
#
# class D(B):
# def func(self):
# print('D')
# class E(C):
# def func(self):
# print('E')
#
# class F(D,E):
# def func(self):
# print('F')
#
# d = F()
# d.func()
# print(F.mro())


# class A:
# def func(self):
# print('A')
#
# class B(A):
#
# def func(self):
# print('B')
#
# class C(A):
# def func(self):
# print('C')
#
# class D(B,C):
# def func(self):
# print('D')
# class E(C):
# def func(self):
# print('E')
#
# class F(D,E):
# def func(self):
# print('F')
#
# d = F()
# d.func()
# print(F.mro())
# 经典类 : 深度优先


# class A:
# def func(self):
# print('A')
#
# class B(A):
#
# def func(self):
# print('B')

# class C(A):
# def func(self):
# print('C')

# class D(B,C):
#
# def func(self):
# print('D')
#
# d = D()
# d.func()

猜你喜欢

转载自www.cnblogs.com/zm419914/p/9245186.html