Python超级简单入门学习 面向对象

面向对象

1.创建类
  使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,其中类的体的第一行可以写一个字符串,作为该类的文档声明,这个文档声明可以通过   ClassName.__doc__查看:

class ClassName:
        '类的帮助信息'   #类文档字符串
        class_suite  #类体

·  类的体中可以包含 成员属性 成员方法 构造方法等内容

class Person:
    "代表人的类"
    name=""
    addr = "bj"
    def __init__(self,name="zs"):
        self.name = name
        print("Person被构造了。。。")
    def eat(self):
        print("吃。。。")
    def sleep(self):
        print("睡。。。")

2.成员属性
  python类中可以包含成员属性。当创建该类的对象时,对象都会默认具有该属性。

3.成员方法
  python类中的方法和其他方法不同之处在于,方法中必须存在一个叫self的参数,这个self代表的当前对象本身,相当于java中的this

4.构造方法
  python中的类可以指定构造方法。在python类中定义名字为__init__的方法,就是python的构造方法。

5.创建对象
  python中没有new关键字,直接使用类名就可以创建出对象

p = Person()
print(p.name)
p.eat()	 

6.增加 删除 对象的属性和方法
  在python中,类的和对象关系并不是一种强关联,类仅仅是创建对象的模版,一旦对象创出来,对象就是一个独立的个体,可以自己增加或删除属性和方法(只能删除后天增加的属性和方法,对于类的属性和方法无法删除),另外,可以在对象创建出来后增加删除属性方法,意味这哪怕是同一个类创建的对象,有可能大不相同

#增加属性
p1 = Person()
p1.age = 19
 
#增加方法
def study():
    print("学习。。。。")
p1.study=study
p1.study()
 
#删除属性
del p1.age
 
#删除方法
del p1.study	 	

java和python类和对象关系的对比:
   在java中类是创建对象的模板,对象受制于类,属性和方法受类的约束
   在python中类仅仅是创建对象的模板,当对象创建出来,是个独立的个体,就不受类的约束。可以增加属性和方法,但是对象只能删除自己后加的属性,不能删除从类中得到的属性和方法

7.类的内置属性
python的类中自动包含若干内置属性,这些内置属性往往具有特定功能
dict : 类的属性(包含一个字典,由类的数据属性组成)
doc : 类的文档字符串
name: 类名
module: 类定义所在的模块
bases : 类的所有父类构成元素(包含了一个由所有父类组成的元组)

8.类的继承,重写,多态
  python类支持继承。python支持多继承。
  继承的语法:

class subClass (superClass,[…]):
        类体

·  子类在构造时并不会自动调用父类的构造方法,如果需要,则应在子类的构造方法中显式的调用父类构造。
  在子类中调用父类方法时,需要通过父类名来调用。
如果多重继承中,多个父类有同名方法,则具体继承到哪一个取决于父类的继承顺序,继承声明中越靠前优先级越高。通俗的说,如果继承多个父类时,这几个父类有相同的方法,则子类继承先继承的那个父类的方法。
  在子类中如果不喜欢父类的方法,可以进行重写操作,在子类中声明和父类名称和参数相同的方法,自己来实现。

#coding=utf-8
class Teacher:
    name = ""
    def __init__(self,name):
        self.name = name
    def teach(self):
        print(self.name+"讲课。。。")
    def run(self):
        print("跑步。。。")
 
class Coder:
    def code(self):
        print("写代码。。。")
    def run(self):
        print("运行代码。。。")
        
class JavaTeacher(Coder,Teacher):
    def __init__(self,name):
        Teacher.__init__(self, name)
    def debug(self):
        print("调试代码。。。")
    def code(self):
        print("边讲边写。。。")
 
jt = JavaTeacher("zs")
jt.teach()
jt.code()
jt.debug()
jt.run()

·  python引用没有类型,所以引用可以先后等于完全不同类型的数据,自然也就没有多态的概念了。
9.类的访问权限控制
  python中类 的属性和方法都可以进行访问权限的控制,控制的方法为:
属性或方法名称如果以单下划线开头,则是保护成员,只能在类内部或子类内部访问,这只是一种约定,并没有严格的限制
  属性过方法名称如果以双下划线开头,则是私有成员,只能在类的内部访问,外界无法使用。

class Person:
    __name = "zs"
    def __say(self):
        print("说 。。")
        
p = Person()
print(p.__name)
p.__say()

10.基础方法的重写
  在这里插入图片描述python中的类中自带很多基础方法,这些方法提供了类的特定功能,可以通过重写这些方法来实现这些特定功能的实现

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值