Python构造器

作者: IT赶路人 | 来源:发表于2021-07-06 21:05 被阅读0次

    微信公众号-IT赶路人,专注分享与IT相关知识,关注我,一起升职加薪!

    图片

    本文将向您介绍一个有趣的主题,这个主题很简单,但编程的核心,我指的是Python构造函数。下面的指针将在本文中介绍,那么让我们开始吧,

    Python构造函数

    如果您已经进行了一段时间的编程,那么您可能遇到Python这个名称的次数太多了。Python作为一种编程语言遵循面向对象,这意味着在Platform上创建的每个实例都被定义为对象。尽管Python中的大多数组件都有大量的在线信息,但有一个话题一直在反复研究,那就是Python中的构造函数。因此,在这篇文章中,我们将讨论所有关于Python中的构造函数,如何利用它们,以及它们给我们带来的好处。让我们开始吧!继续这篇关于Python构造器的文章,

    Python中的构造函数是什么?

    构造函数可以简单地定义为一种特殊类型的方法或函数,可用于初始化类中各种成员的实例。
    在Python中,有两种不同类型的构造函数。

    • 非参数化构造函数:Python中没有参数的构造函数称为非参数化构造函数。

    • 参数化构造函数:预定义了参数的构造函数称为参数化构造函数。
      构造函数是在我们在类内创建对象时定义的。构造函数的存在还验证了是否存在足够的资源,因此可以通过类的对象轻松地执行启动任务。

    在Python中创建构造函数

    既然您已经熟悉了Python中构造函数的定义和类型,让我们来研究一下如何在Python中创建构造函数。
    在Python中,如果需要创建构造,则需要使用init函数。您需要调用此方法,Momenta类已实例化。一旦定义并调用了init函数,我们就可以根据需要在创建类对象时传递任意数量的参数。在Python中,构造函数最常见的用法是初始化类的属性。
    注意:您在Python中创建的每个类都需要有一个构造函数才能运行,即使它是默认的构造函数也是如此。
    要更好地理解这个概念,请看下面的示例。

    class Employee:
        def __init__(self,name,id):
            self.id = id;
            self.name = name;
        def display (self):
            print("ID: %d nName: %s"%(self.id,self.name))
            
    emp1 = Employee("John",101)
    emp2 = Employee("David",102)
    #accessing display() method to print employee 1 information
    emp1.display();
    #accessing display() method to print employee 2 information
    emp2.display();
    
    

    当您运行上面的程序时,输出将如下所示。

    ID: 101 nName: John
    ID: 102 nName: David
    

    参数化构造函数与非参数化构造函数的区别

    如上所述,参数化构造函数是具有预定值的构造函数,而非参数化构造函数是没有赋值的构造函数。虽然编程用例会根据上下文的不同而有所不同,为了更好地理解这一点,请看下面的示例。

    class Student:
    #Constructor - non parameterized
        def __init__(self):
            print("This is non parametrized constructor")
        def show(self,name):
            print("Hello",name)
            
    student = Student()
    student.show("John")
    

    上面是一个非参数化构造函数的示例,它的输出如下所示。

    This is non parametrized constructor
    Hello John
    
    class Student:
    #Constructor - parameterized
        def __init__(self, name):
        print("This is parametrized constructor")
        self.name = name
        
        def show(self):
            print("Hello",self.name)
            
    student = Student("John")
    student.show()
    

    输出结果

    This is parametrized constructor
    Hello John
    

    Python内置的类函数

    既然已经清楚了Python中构造函数的基础知识,那么让我们探索一下Python中存在的各种内置类。
    1.getattr(obj,name,default):Python中的这个内置函数用于访问类的属性。
    2.delattr(obj,name):如果您需要删除类中的特定属性,则使用此内置函数。
    3.setattr(obj,name,value):在特定情况下,如果您决定为特定属性设置特定值,那么可以使用Python内置的这个函数。
    4.hasattr(obj,name):最后但同样重要的是,如果您需要查看特定对象是否包含属性,则使用此函数。执行时,如果函数中存在属性,则返回TRUE。
    要理解Python中内置类函数的概念,请看下面的代码。

    class Student:
        def __init__(self,name,id,age):
            self.name = name;
            self.id = id;
            self.age = age
    #creates the object of the class Student
    
    s = Student("John",101,22)
    #prints the attribute name of the object s
    print(getattr(s,'name'))
    # reset the value of attribute age to 23
    setattr(s,"age",23)
    # prints the modified value of age
    print(getattr(s,'age'))
    # prints true if the student contains the attribute with name id
    print(hasattr(s,'id'))
    # deletes the attribute age
    delattr(s,'age')
    # this will give an error since the attribute age has been deleted
    print(s.age)
    

    输出结果

    John
    23
    True
    Traceback (most recent call last):
      File "E:/Program Files/program/jiaoben/output.py", line 20, in <module>
        print(s.age)
    AttributeError: 'Student' object has no attribute 'age'
    

    内置类属性

    除了内置的类函数外,Python还附带了内置的类属性,这些属性有时会派上用场。下面给出了一些最重要的内置类属性。
    1.dict:通过使用它,您可以查看包含有关类命名空间的信息的字典。
    2.name:如果需要查看当前类的名称,可以使用该属性。
    3.doc:该属性包含一个字符串,该字符串包含当前类的文档。
    4.MODULE:如果需要访问定义类的模块,可以使用这个内置属性。
    5.BASES:如果需要查看包含所有基类的元组,则使用此函数。
    下面给出了一个说明所有内置类属性的示例。

    class Student:
        def __init__(self,name,id,age):
            self.name = name;
            self.id = id;
            self.age = age
    def display_details(self):
    print("Name:%s, ID:%d, age:%d"%(self.name,self.id))
    s = Student("John",101,22)
    print(s.__doc__)
    print(s.__dict__)
    print(s.__module__)
    

    输出结果

    None
    {'age': 22, 'id': 101, 'name': 'John'}
    __main__
    

    这就把我们带到了这篇关于Python构造器的文章的末尾。

    26322751-8bd00fde1a719aa1.jpg

    相关文章

      网友评论

        本文标题:Python构造器

        本文链接:https://www.haomeiwen.com/subject/nbqnultx.html