本文概述
- 在python中创建构造函数
- Python非参数构造函数示例
- Python参数化构造函数示例
- Python内置类函数
- 内置的类属性
【Python构造函数使用详解】构造函数可以有两种类型。
- 参数化构造函数
- 非参数构造函数
在python中创建构造函数在python中, 方法__init__模拟类的构造函数。在实例化类时调用此方法。在创建类对象时, 我们可以传递任意数量的参数, 具体取决于__init__的定义。它主要用于初始化类属性。每个类都必须具有构造函数, 即使它仅依赖于默认构造函数也是如此。
考虑以下示例以初始化Employee类属性。
例子
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 informationemp2.display();
输出
ID: 101 Name: JohnID: 102 Name: David
示例:计算一个类的对象数
class Student:count = 0def __init__(self):Student.count = Student.count + 1s1=Student()s2=Student()s3=Student()print("The number of students:", Student.count)
输出
The number of students: 3
Python非参数构造函数示例
class Student:# Constructor - non parameterizeddef __init__(self):print("This is non parametrized constructor")def show(self, name):print("Hello", name)student = Student()student.show("John")
输出
This is non parametrized constructorHello John
Python参数化构造函数示例
class Student:# Constructor - parameterizeddef __init__(self, name):print("This is parametrized constructor")self.name = namedef show(self):print("Hello", self.name)student = Student("John")student.show()
输出
This is parametrized constructorHello John
Python内置类函数下表中描述了该类中定义的内置函数。
SN | Function | Description |
---|---|---|
1 | getattr(obj, name, 默认) | 它用于访问对象的属性。 |
2 | setattr(obj, name, value) | 它用于为对象的特定属性设置特定值。 |
3 | delattr(obj, 名称) | 用于删除特定属性。 |
4 | hasattr(obj, 名称) | 如果对象包含某些特定属性, 则返回true。 |
class Student:def __init__(self, name, id, age):self.name = name;
self.id = id;
self.age = age#creates the object of the class Students = Student("John", 101, 22)#prints the attribute name of the object sprint(getattr(s, 'name'))# reset the value of attribute age to 23setattr(s, "age", 23)# prints the modified value of ageprint(getattr(s, 'age'))# prints true if the student contains the attribute with name idprint(hasattr(s, 'id'))# deletes the attribute agedelattr(s, 'age')# this will give an error since the attribute age has been deletedprint(s.age)
输出
John23TrueAttributeError: 'Student' object has no attribute 'age'
内置的类属性除了其他属性, python类还包含一些内置的类属性, 这些属性提供有关该类的信息。
下表列出了内置的类属性。
SN | Attribute | Description |
---|---|---|
1 | __dict__ | 它提供了包含有关类名称空间信息的字典。 |
2 | __doc__ | 它包含一个带有类文档的字符串 |
3 | __name__ | 用于访问类名。 |
4 | __module__ | 它用于访问在其中定义了此类的模块。 |
5 | __bases__ | 它包含一个包含所有基类的元组。 |
class Student:def __init__(self, name, id, age):self.name = name;
self.id = id;
self.age = agedef 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{'name': 'John', 'id': 101, 'age': 22}__main__
推荐阅读
- Python数组介绍和操作运算详解
- Python命令行参数用法全解
- 热门精品!Python IDE开发工具推荐合集
- Python统计模块用法示例
- Python怎么写入excel文件(详细实例在这里。。。)
- Python如何写入CSV文件(详细答案————)
- Python sys模块用法
- Python使用SMTP发送电子邮件示例
- Python如何读取Excel文件(详细内容在这里…)