类和对象

对象=属性+方法

class Turtle: # 类首字母大写
    color = 'green'
    weight = 10
    def climb(self):
        print('正在爬')
self

由同一个类可以生成无数对象,当一个对象的方法被调用是,对象会将自身的引用作为第一个参数传给该方法,Python就知道需要操作哪个对象的方法了。

class Ball:
    def setName(self, name):
        self.name = name
    def showName(self):
        print('my name is' + self.name)

a = Ball()
a.setName('football')
a.showName()
构造方法__init__()

只要实例化一个对象,__init__()方法就会在对象被创建时自动调用。

class Ball:
    def __init__(self, name):
        self.name = name
    def showName(self):
        print('my name is' + self.name)

a = Ball('football')
a.showName()
公有和私有
class Person:
    name = 'Tom' # 定义公有变量

p = Person()
p.name
class Person:
    __name = 'Tom' # 定义私有变量

p = Person()
p.__name # 报错,无法调用私有变量

可以从内部调用:

class Person:
    def __init__(self, name):
        self.__name = name
    def getName(self):
        return self.__name

p = Person('Tom')
p.getName()

继承

class 类名(被继承的类):
    ···
class Parent:
    def hello(self):
        print('正在调用父类')

class Child(Parent):
    pass

如果子类中定义与父类同名的方法或属性,则会自动覆盖。

class Child(Parent):
    def hello(self):
        print('正在调用子类')

当重写子类__init__时,调用父类__init__的方法:

  1. 调用未绑定的父类方法
class Shark(Fish):
    def __init__(self):
        Fish.__init__(self)
        self.hungry = True
  1. 使用super函数
class Shark(Fish):
    def __init__(self):
        super.__init__(self)
        self.hungry = True

组合

class Turtle:
    def __init__(self, x):
        self.num = x

class Fish:
    def __init__(self, x):
        self.num = x

class Pool:
    def __init__(self, x, y):
        self.turtle = Turtle(x)
        self.fish = Fish(y)
    def print_num(self):
        print('水池里共有乌龟 %d 只, 鱼 %d 条!' % (self.turtle.num, self.fish.num))

pool = Pool(1, 10)
pool.print_num()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对象 = 属性(变量) + 方法(函数) 1. OO的特征 OO:Object Oriented(面向对象) 1....
    王书剑阅读 311评论 0 0
  • Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的...
    有一种再见叫青春阅读 620评论 0 3
  • 类是一个重要的C#编程概念,它在一个单元内定义了表示和行为。类提供了面向对象编程和面向组件编程所需的语言支持,是创...
    CarlDonitz阅读 894评论 0 2
  • 一个类可以包含有属于自己的常量,变量(称为“属性”)以及函数(称为“方法”)。当一个方法在类定义内部被调用时,有一...
    小羊羊爱吃饭阅读 572评论 0 0
  • 电子阅读时代,信息每天扑面而来。我们赶集似的阅读,生怕错过什么,而显得不那么时尚。可是,当我们沉下心回头去看,却发...
    coco司令阅读 953评论 2 4