Python构造函数:您需要知道的一切
本文将向您介绍一个有趣的主题,该主题既简单又是编程的核心,我指的是Python构造函数。本文将介绍以下指针,
Python构造函数
如果您已经有一段时间编程,那么您可能会多次遇到Python这个名字。Python作为一种编程语言遵循对象导向,这意味着在平台上创建的每个实例都被定义为一个对象。尽管Python中的大多数组件都在线提供了大量信息,但是不断重复研究的一个主题是Python中的构造函数。因此,在本文中,我们将讨论有关Python中构造函数的所有信息,如何使用它们以及它们为表带来的好处。让我们开始!
Python中的构造函数是什么?
构造函数可以简单地定义为一种特殊的方法或函数类型,可用于初始化类中各种成员的实例。
在Python中,有两种不同类型的构造函数。
- 非参数化构造函数:Python中没有参数的构造函数称为非参数化构造函数。
- 参数化构造函数:预定义了参数的构造函数称为参数化构造函数。
当我们在类内创建对象时就定义了构造函数。构造函数的存在还可以验证是否存在足够的资源,以便可以通过类的对象轻松执行启动任务。
在Python中创建构造函数
既然您已经熟悉了Python中构造函数的定义和类型,那么让我们探索如何在Python中创建构造函数。
在Python中,如果需要创建构造,则需要使用__init__函数和或方法。您需要在实例化类时调用此方法。定义并调用__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
姓名:约翰
ID(标识号):102
姓名:大卫
参数化构造函数与非参数化构造函数之间的区别
如以上定义中所述,参数化构造函数是具有预定义值的参数,而非参数化构造函数是未分配值的参数。在对用例进行编程时,取决于上下文,并且为了更好地理解它,请看以下示例。
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")
上面是一个非参数构造函数的示例,其输出如下。
这是非参数化的构造函数
你好约翰
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()
上面是参数化构造函数的示例,其输出如下。
这是参数化的构造函数
你好约翰
在Python中的内置类函数中
既然Python构造函数的基础已经很清楚,让我们探索Python中存在的各种内置类。
- getattr(obj,name,default):此Python内置函数用于访问类的属性。
- delattr(obj,name):如果需要删除类中的特定属性,请使用此内置函数。
- setattr(obj,name,value):在某些情况下,如果您决定为特定属性设置特定值,请使用Python内置的此函数。
- 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)
上面的输出将是。
约翰
23
真正
AttributeError:“学生”对象没有属性“年龄”
内置的类属性
Python与内置的类函数一起提供了内置的类属性,这些属性有时会派上用场。某些最重要的内置类属性如下所示。
- __dict__:通过使用它,您可以查看包含有关类名称空间信息的字典。
- __name__:如果需要查看当前类的名称,请使用此属性。
- __doc__:此属性包含一个字符串,其中包含当前类的文档。
- __module__:如果需要访问在其中定义了类的模块,请使用此内置属性。
- __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__)
这使我们到了本文关于Python构造函数的结尾。
- 点赞
- 收藏
- 关注作者
评论(0)