Python基础——类与对象

面向对象是一种抽象,是一种用分类的方式看待问题的方法,用 Java 的编程思想来说就是:万物皆对象;面向对象有三大特性:封装、继承、多态。
一个分类就是一个类,可以把类看作是一个抽象的模板,如:Car 类。
对象是根据类创建出来的一个个实例

1.类的内置方法与三种方法

Python 创建任何一个类的时候,都会包含一些内置的方法,主要包括如下:
在这里插入图片描述

1.1实例方法(需要实例化才能使用的方法):

第一个参数必须要默认传实例对象,一般习惯用self。

# 实例方法(可调类变量、可调实例变量、可被实例调用)
# 第一个参数强制为实例对象 self。
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    def run(self,speed):
        print(self.name,speed,'行驶')

# 访问
c = Car("宝马")
c.run("100迈")
1.2类方法(由@classmethod装饰的方法):

类方法是将类本身作为对象进行操作的方法。可以通过类名类的实例调用,第一个参数必须要默认传类,一般习惯用cls。

'''
类方法(可调类变量、可被实例调用、可被类调用)
1、类方法通过@classmethod装饰器实现,只能访问类变量,不能访问实例变量;
2、通过cls参数传递当前类对象,不需要实例化。
'''
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    @classmethod
    def run(cls,speed):
        print(cls.name,speed,'行驶')
# 访问方式1
c = Car("宝马")
c.run("100迈")
# 访问方式2
Car.run("100迈")
1.3静态方法(由@staticmethod装饰的方法):

静态方法是类中的函数,不需要实例。可以通过类名类的实例调用,参数没有要求

'''
静态方法(可调类变量、可被实例调用、可被类调用)
1、用 @staticmethod 装饰的不带 self 参数的方法;
2、静态方法名义上归类管理,实际中在静态方法中无法访问类和实例中的任何属性;
3、调用时并不需要传递类或实例。
'''
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    @staticmethod
    def run(speed):
        print(Car.name,speed,'行驶')
		
# 访问方式1
c = Car("宝马")
c.run("100迈")
# 访问方式2
Car.run("100迈")

2.类的继承

# 基本语法:class ClassName(BaseClassName)
# 父类
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    def run(self,speed):
        print(self.name,speed,'行驶')
        
# 子类
class BMWCar(Car):
    conf = "经济适用型"
    pass

# 调用父类 Car 中 run 方法
bc = BMWCar("BMW经济适用型轿车")
bc.run("100迈")

3.类的多态


# 父类
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    def run(self,speed):
        print('Car-->',self.name,speed,'行驶')

# 子类1
class BMWCar(Car):
    def run(self,speed):
        print('BMWCar-->',self.name,speed,'行驶')

# 子类2
class SVWCar(Car):
    def run(self,speed):
        print('SVWCar-->',self.name,speed,'行驶')

# 调用 run 方法
c = Car("Car")
c.run("120迈")

bc = BMWCar("宝马")
bc.run("100迈")

sc = SVWCar("大众")
sc.run("80迈")

# 输出结果
'''
Car--> Car 120迈 行驶
BMWCar--> 宝马 100迈 行驶
SVWCar--> 大众 80迈 行驶
'''

在上面的例子中,我们可以看出:c、bc 、sc 是不同类型的对象,在它们调用 run 方法时,调用的均是各自类中的方法,这就是多态。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 面向对象的程序设计分为两种,一种是基于的,另一种是基于原型的。其中基于的程序设计是最常见的一种,它主要涉及到两个概念,即和对象。是一个抽象的概念,它描述了一具有相同属性和方法的对象,而对象则是具体的实例。在基于的程序设计中,用于描述对象的属性和方法,而对象则是的具体实现。因此,基于的程序设计更注重对象的封装、继承和多态等概念。 ### 回答2: 面向对象编程是一种程序设计范式,它把程序看作是一组对象的集合,每个对象都有一个特定的属性和方法。在Python中,每个对象都是一个的实例,是一个抽象的概念,用于表示一组相似的对象。对象是的实例,它继承了的属性和方法,同时可以拥有自己的属性和方法。 在Python中,定义的语法为: class ClassName: # 属性和方法定义中,可以定义属性和方法的属性是一些数据,用来描述的特征;方法是一些函数,用来描述的行为。同时,还可以继承其他的属性和方法,通过继承,子可以重用父的代码,同时也可以增加自己的属性和方法。 在Python中,对象的创建和使用的语法为: object_name = ClassName() 在对象的创建过程中,会调用的构造函数(__init__()方法),用来初始化对象的属性和方法。然后,可以使用对象的属性和方法来完成具体的任务。 在面向对象编程中,有三个重要的概念,分别是封装、继承和多态。封装是指把数据和行为包装在一个中,对外部隐藏具体的实现细节;继承是指子可以继承父的属性和方法,在子中可以重写父方法和添加自己的方法;多态是指同一个方法可以在不同的对象上产生不同的结果,通过实现多态,程序可以更加灵活和可扩展。 最后,在Python中,还可以通过__str__()方法来自定义对象的字符串表示方式,方便输出和调试。同时,还可以通过@property和@setter装饰器来实现属性的封装和保护。 总之,和对象是面向对象编程的基础,它提供了一种更加灵活和可扩展的编程方式,同时也对程序的设计和架构提出了更高的要求。因此,熟练掌握和对象的相关知识,是Python编程的基础和必备技能。 ### 回答3: Python中的面向对象编程(Object-Oriented Programming,OOP)是一种将数据和行为封装在一起,以创建对象为中心的思想。在Python中,一切皆为对象,从简单的数字、字符串到复杂的列表、元组都是对象。面向对象(Object-Oriented)编程中最基本的两个概念是和对象。 是一种数据型,是一组相关数据和方法的描述。其实就是一个对象的模板,包含了它所描述的对象共有的属性和方法Python中定义方法比较简单,使用关键字`class`即可,例如: ```python class Dog: def __init__(self, name, age): self.name = name self.age = age def bark(self): print("汪汪!") ``` 上述代码定义了一个Dog,包含了Dog对象共有的属性(name和age)和方法(bark)。通过关键字`def`定义Dog方法,其中`__init__`方法是一个特殊的方法,用于初始化的对象属性。 当我们需要使用Dog时,需要将它实例化为一个对象。例如: ```python dog1 = Dog("小黑", 3) dog1.bark() # 输出:汪汪! ``` 上述代码创建了一个Dog对象,设置了它的name为“小黑”,age为3,然后调用了Dog方法bark。 另外,Python中还有一些内置函数,可以用于操作和对象。例如: - `type`函数:用于返回对象的型。使用方法为`type(object)` - `isinstance`函数:用于检查对象是否为指定的实例。使用方法为`isinstance(object, classinfo)` - `hasattr`函数:用于检查对象是否具有指定的属性。使用方法为`hasattr(object, name)` - `getattr`函数:用于获取对象的属性值。使用方法为`getattr(object, name[, default])` - `setattr`函数:用于设置对象的属性值。使用方法为`setattr(object, name, value)` 以上是Python中定义和使用的基本语法和函数,掌握了这些知识后,可以尝试设计自己的并应用到实际的编程项目中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值