微信公众号-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构造器的文章的末尾。