温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python面向对象的类和对象怎么使用

发布时间:2021-12-13 17:08:12 来源:亿速云 阅读:156 作者:iii 栏目:开发技术

这篇文章主要介绍“Python面向对象的类和对象怎么使用”,在日常操作中,相信很多人在Python面向对象的类和对象怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python面向对象的类和对象怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    定义类

    • 所有类名首字母要求大写,多个单词时遵循驼峰命名法

    • 所有未定义父类的类都继承object

    格式:class 类名[(父类)]:

    #两种方式意思相同
    class Person:
        pass 
    class Person(object):
        pass

    定义类和属性

    name、age、subject就是类属性

    class Student:
        #类属性
        name = ''
        age = 0
        subject = []

    类中方法

    对象方法(普通方法)
    格式:
    def 方法名(self[,parm1,parm2...]):
        pass

    self就是对象本身

    class Student:
        # 类属性
        name = 'student'
        age = 0
        subject = []
       # 普通方法
        def study(self):
            print(self.name, '正在学习...') 
    xiaoming = Student()
    xiaoming.name = 'xiaoming'
    xiaoming.study()

    ------------
    输出:
    xiaoming 正在学习...

    class Student:
        # 类属性
        name = 'student'
        age = 0
        subject = []
       # 普通方法
        def study(self, name):
            print(name, '正在学习...') 
    s1 = Student()
    s1.study('xiaohong')

    ----------------
    输出:
    xiaohong 正在学习...

    类方法
    格式:
    @classmethod
    def 方法名(cls):
        pass
    • 类方法使用@classmethod装饰器

    • 对象方法传入的是self,类方法传入的是cls

    • 类方法可以直接用类调用,或者可以用类的实例(对象)调用

    class Dog:
        dog_type = '阿拉斯加'
       def __init__(self, nickname):
            self.name = nickname
       def dog_run(self):
            print('{}在公园里跑.看起来是一只{}.'.format(self.name, self.dog_type))
       @classmethod
        def dog_sit(cls):
            print(cls.dog_type, '很乖,坐下了') 
    dog1 = Dog('肉丸')
    dog1.dog_type = '小泰迪'
    dog1.dog_run()
    Dog.dog_sit()

    --------------
    输出:
    肉丸在公园里跑.看起来是一只小泰迪.
    阿拉斯加 很乖,坐下了

    静态方法
    • 静态方法使用装饰器@staticmethod

    • 静态方法没有参数

    • 当方法跟类属性和对象属性都没有关系的时候,使用静态方法

    • 支持对象和类名直接调用

    class Dog:
        def __init__(self, nickname):
            self.name = nickname
       @staticmethod
        def dog_sit():
            print('很乖,坐下了') 
    dog1 = Dog('肉丸')
    dog1.dog_sit()
    Dog.dog_sit() 
    ---------------------

    输出:
    很乖,坐下了
    很乖,坐下了

    魔术方法
    格式:
    def __方法名__(self):
        pass

    __init__() 构造函数

    • 如果没有__init__。直接利用类向内存申请一个和类一样的空间,给到对象。

    • 如果有__init__。利用类向内存申请一个和类一样空间,内存空间(self)传递给__iniy__,执行__init__的函数。最后将内存空间给到对象。

    对象

    创建对象

    格式:对象名 = 类名()

    class Student:
        #类属性
        name = ''
        age = 0
        subject = [] 
    xiaoming = Student()

    对象属性

    • 当创建了对象时,对象会继承类的属性。获取属性的时候,也是从类中获取属性。

    • 当对默认的类属性赋值后(对象名.属性 = xxxx),属性才会变成对象属性。

    class Student:
        # 类属性
        name = 'student'
        age = 0
        subject = [] 
    xiaoming = Student()
    print('类属性:', xiaoming.name)  # 此时是从类中获取的类属性
    xiaoming.name = 'xiaoming'  # 因为赋值了,此时变成了对象属性
    print('对象属性:', xiaoming.name) 
    -------------

    输出:
    类属性: student
    对象属性: xiaoming

    到此,关于“Python面向对象的类和对象怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI