python入门学习(三)—— 类

本文深入探讨Python中的面向对象编程,讲解如何创建类与实例,包括类的初始化方法`__init__`,实例化过程,访问属性和调用方法,以及如何修改属性值。此外,还介绍了类的继承机制,包括继承父类属性、定义子类属性和方法以及重写父类方法。最后,讨论了如何将实例用作属性以实现更复杂的类结构,并简述了导入类的不同方式。文章强调了良好的代码风格,如驼峰命名法和文档字符串的重要性。
摘要由CSDN通过智能技术生成

一、创建类与实例

(一)、创建类

根据类来创建对象被称为 实例化,其创建的对象被称为实例;对象是类的实例

class Dog():
    
    def __init__(self, name, age):
        """初始化属性name age"""
        self.name = name
        self.age = age

    '''
    参考点5
    def __init__(self, name, age):
        """初始化属性name age weighet,并将weight的默认值设为10"""
        self.name = name
        self.age = age
        self.weight = 10
    '''

        
    def sit(self):
        """定义一个方法"""
        print(self.name.title() + "is now sitting")

1、类的首字母大写,并且其后面的括号为空

2、类中的函数称为方法,例如上面的sit 和 init

3、可通过实例访问的变量称为属性,例如name 与 age

4、Python在创建实例时,会自动传入实参self,其是一个指向实例本身的引用,使实例能够访问类中的属性和方法

5、类中的每个属性都必须要有初始值,哪怕其是0或者空字符串,并且当你对每个属性设置了默认值,则在_ init _ 中,则无需包括该形参

(二)、创建实例

class Dog():
    --snip--

my_dog = Dog('while', 6)

1、方法 _ init _()用于接受传输的实参并创建实例,因此实例中的参数只需要根据该方法进行设置即可

(1)、访问属性与调用方法

要访问实例的属性或者调用类中的方法,可使用句点表示法

my_dog.name
my_dog.sit()

1、此处解释了我们在创建类时为什么使用self形参

2、调用方法与创建实例时相同,调用语句中需要包括除self以外的所有实参


二、使用类与实例

(一)、修改属性的值

可以通过实例访问属性并直接修改属性的值

my_dog.name = 'white'

可以通过方法将值进行内部更新

class Dog():
    --snip--

    def upname(self, new_name):
        self.name = new_name

Dog.upname("white")

三、继承

当你要编写的类是另一个类的特殊版本或者说修改版本,可以使用继承。此时,原有的类称为父类,而新类称为子类

(一)、继承父类属性

#创建父类Dog
class Dog():
    
    def __init__(self, name, age):
        """初始化属性name age"""
        self.name = name
        self.age = age

#创建子类SmallDog
class SmallDog(Dog):
    def __init__(self,name, age):
        """初始化父类属性"""
        super().__init__(name, age)

1、创建子类时,父类必须包含在当前文件,并且在子类前面

2、在创建子类时,原本的空括号需要指定父类的名称

3、super()函数用于将父类与子类相关联起来,即实现了继承功能,这行代码用于调用父类的_ init _方法,让子类中包含父类的全部属性。

(二)、定义子类属性和方法

#创建父类Dog
class Dog():
    
    def __init__(self, name, age):
        """初始化属性name age"""
        self.name = name
        self.age = age

#创建子类SmallDog
class SmallDog(Dog):
    def __init__(self,name, age):
        """初始化父类属性"""
        super().__init__(name, age)
        self.size = 20

    def run(self):
        print("the size of dog is:" + str(self.size))

1、我们添加了子类的独有属性size与方法run

(三)、重写父类方法

在子类中使用父类的方法名称重新定义即可

(四)、将实例用作属性

主要用于将一个结构复杂的大类拆分为一个个小类

#创建父类Dog
class Dog():
    """定义狗的属性"""
    def __init__(self, name, age):
        """初始化属性name age"""
        self.name = name
        self.age = age

#将实例用作属性
class DogSize():
    """定义狗的尺寸属性"""
    def __init__(self):
        self.size = 20

#创建子类SmallDog
class SmallDog(Dog):
    """定义狗中小狗的属性"""
    def __init__(self,name, age):
        """初始化父类属性"""
        super().__init__(name, age)
        self.sizesize = Dog_Size()

    def size(self):
        print("the size of dog is:" + str(self.sizesize.size))

1、将子类中用于定义尺寸的放在了类DogSize中

2、调用方法与之前的相同


四、导入类

(一)、导入单个类

from 3 import Dog

1、导入了文件3.py中的Dog类

(二)、从一个模块导入多个类

from dog import Dog, DogSize, SmallDog

1、用逗号分隔各个类

(三)、导入整个模块

from dog

1、导入模块3.py


五、代码风格

(一)、类名命名应采用驼峰法

将类名中的每一个单词的首字母大小,而不使用下划线

(二)、实例名与模块名采用小写格式,并且在单词之间加上下划线

(三)、文档字符串

对于每一个类,都应该在类定义后面包含一个文档字符串。文档字符串应该简要地描述类的功能,并且遵循编写函数的文档字符串时采用的格式约定。

码字不易,希望大家看完有收获的话点个关注和收藏,下周会继续更新python的其他章节,谢谢大家

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值