Python 学习第六天

Python 学习

第六天

1 》面向对象

(1)三大特性:
封装
继承
多态
(2)类:把一些事务的共同属性(变量)和行为(方法)定义在一个类
(3)方法:定义在类中的方法,其实指的是类的行为
(4)类变量:类变量是对所有对象共用的,定于在类中方法外,
(5)实例变量:每个对象独有的,定义在方法内部,使用self.变量
(6)局部变量:定义在方法中,在当前代码块中有效。
(7)实例化:创建一个类的实例,类的具体对象
(8)对象:通过类定义的数据结构实例,对象包括变量和方法
# 类的定义与使用
class person():
    name = 'xiaowang'
    age = 0

    def eat(self):
        print(self.name + "吃饭")


# 类对象的创建,从抽象到具体的过程
dd = person()
dd.name = 'dd';
dd.age = 12;
dd.eat()

2》构造方法

_init_(),构造方法,帮我们初始化实例变量的方法
不是显示写这个方法,其实也有,不过代码块为空
显示调用这个方法,就可以在构造一个对象,同时把实例变量初始一下

无参构造方法的第一个参数必须是self

self 代表类的实例(调用的当前对象)
# _init_(),构造方法,帮我们初始化实例变量的方法
# 不是显示写这个方法,其实也有,不过代码块为空
# 显示调用这个方法,就可以在构造一个对象,同时把实例变量初始一下
class animal():

    gangmu = "dw"

    # 第一种格式
    # def __init__(self):
    #     self.name = "xiaohua"
    #     self.age = 2
    #     self.leg = 5
    def __init__(self ,name, age ,leg):
        self.name = name
        self.age = age
        self.leg = leg


    def pri_info(self):
        print("%s %s %s" %(self.name, self.age, self.leg))

# 无参构造方法
# cat = animal()
# cat.name = "laji"
# cat.age = 12
# cat.leg = 1
# cat.pri_info()

# 有参构造方法
dog = animal('shabi',12,14)
dog.pri_info()

3 》三大特性

封装:希望只能看到自己的数据,把变量和方法定义为私有的
	私有化变量
	私有化方法
继承
多态

(1)封装

	#私有化变量
	#私有化方法
class animal():

   # __ 就是对类的属性进行私有话
    __gangmu = "dw"


    def __init__(self):
        self.__name = "xiaohua"
        self.age = 2
        self.leg = 5



    # 对私有属性进行访问
    def pri_info(self):
        print(self.__gangmu)
        print("%s %s %s" %(self.__name, self.age, self.leg))


    # 对私有方法进行定义,不能直接访问
    def __eat(self):
       print("cccc")
    # 对私有方法进行访问
    def toeat(self):
        self.__eat();
cat =  animal();
cat.pri_info()
cat.toeat();·


(2)继承

当我们定义一个class的时候,可以从某个现有的class继承,新的class叫子类,二继承的class叫做基类,父类或者超类
继承可以把父类的所有功能职级直接拿过来,这样就不必重新写重复的功能,子类只需要新增加自己特有的功能即可,也可以把不合适的·方法重写
重写:直接在子类中定义一个和父类同名的方法就叫重写


子类现有的属性是父类继承来的,继承父类的构造方法(默认继承,是不显示出来的)

类直接调用方法:
	实例方法不能使用类名直接调用,只能使用对象调用
	类方法(静态方法):是可以直接使用类来调用animal.__init__(self,xx,xxx)
	
私有方法/属性不能被继承使用


格式:
1.定义父类
	class persion():	
		公共方法与属性
2.子类继承父类
	class teacher(persion):


(3)多态

多态:在不同场景小,体现的心态不同

多态的前提是继承
python效果不是很明显
# 继承的例子

class persion():
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def eat(self):
        print("%s吃吃吃" %self.name)


class teacher(persion):
    def teach(self):
        print("jiaoshu")


class itcxy(persion):
    def __init__(self,name,age,tizhong):
        persion.__init__(self,name,age)
        self.tizhong = tizhong


p = persion('www',12)

p.eat()

t = teacher('teacher',12)

t.eat()
t.teach()

it = itcxy("itnongming",22,12);
it.eat()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值