python学习-对象、类

对象和类

对象即包含数据(变量,习惯称为特性,attribute),也包含代码(函数,也称为方法)

使用class定义类:

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

使用Person类创建对象:

hunter = Person(‘Elmer Fudd’)

继承:

从已有类中衍生出新的类,添加或修改部分功能。将原始的类称为父类、超类或基类,将新的类称作孩子类、子类或衍生类。

class Car():
    pass
class Yugo(Car):
    pass

Yugo是Car的子类,定义子类时需要把父类的名字放在子类名字后面的括号里。

覆盖方法:

在子类中,可以覆盖任何父类的方法,包括init()添加新方法:子类可以添加父类中没有的方法。 使用super从父类得到帮助:通过super()方法获取父类Person的定义。super().__init(name) 使用属性对特性进行访问:一些私有属性、方法,无法从对象外部直接访问,需要编写getter和setter方法对私有特性进行读写操作。 使用名称重整保护私有特性:由连续的两个下划线开头(

方法的类型:

实例方法(instance method):以self作为第一个参数的方法。 类方法(class method):用前缀修饰符@classmethod指定的方法,对类作出的任何改变会对它的所有实例对象产生影响。类方法的第一参数是类本身,这个参数常被写作cls。 静态方法(static method):用@staticmethod修饰,它即不需要self参数也不需要class参数。

class A()
    count = 0
    def __init__(self)
        A.count+=1
    def exclaim(self):
        print(“I’m an A!”)
    @classmethod
    def kids(cls)
        print(“A has”, cls.count,”little objects.”)

easy_a = A()
breezy_a = A()
wheezy_a = A()
A.kids()
A has 3 little objects.

上面的代码中,我们使用的是A.count(类特性),而不是self.count(可能是对象的特性)。在kids()方法中,我们使用的是cls.count,它与A.count的作用一样。

特殊方法(special method):

有时也被称作魔术方法(magic method),这些特殊方法的名称以双下划线(__)开头和结束。

组合(composition):

聚合(aggregation):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值