类是 Python 语言的一个基本部分。它们提供了一种将相关功能组合在一起的方法,并且在面向对象编程中起着核心作用。在这篇文章中,我们将看一下Python中类的属性。
关于类的更多信息
- 类只是一个接口,在其内部持有变量和函数。它们分别被称为数据成员和成员函数。
- 要访问它们,我们需要创建一个该类的对象。该对象是一个实例,我们可以通过它来编辑其属性。
- 为了给类本身提供一些参数,有一个特殊的方法叫做构造函数。当我们形成对象时,该方法会在运行时调用。
- 我们可以只使用对象 来访问所有的数据成员和成员函数。
在Python中创建类
Python 中的类是用关键字 class 来创建的,后面是类的名称。类的属性定义在类名之后,它们被该类的所有实例所共享。单个实例的属性定义在类的属性之后,它们对每个实例都是唯一的。方法的定义也被放在类定义之后。方法是与类相关的函数,它们被用来处理或操作存储在类的实例中的数据。
现在让我们来定义一个类,以便更好地理解这一点。
代码
class student:
def __init__(self, name, std, roll_no):
self.nm = name
self.std = std
self.rl_no = roll_no
def getData(self):
print("Student name: ", self.nm)
print("Standard: ", self.std)
print("Roll number: ", self.rl_no)
def setData(self, name, std, roll_no):
self.nm = name
self.std = std
self.rl_no = roll_no
stud = student("Om", "4th", 9)
stud.getData()
print() # to print a new line in between
stud_1 = student("Hari", "5th", 14)
stud_1.getData()
输出
Student name: Om
Standard: 4th
Roll number: 9
Student name: Hari
Standard: 5th
Roll number: 14
解释
- 使用class关键字来声明一个类。然后在它后面加上class_name,并给出一个冒号来开始数据插入。
- 然后调用 "__init__() " 方法。这是 Python 中任何类的构造方法。
- 我们创建一个学生 类,然后给它赋予属性,如姓名、标准、和卷号。
- 如果我们不使用self关键字,类的声明就没有用 。
- 类里面有两个方法。
- 第一个 "getData() "检索了实例属性。
- 第二个 "setData() "可以改变这些属性的值。
- 现在我们为这个类创建两个对象。第一个对象有不同的参数。它们是关于两个学生的名字和信息。
- 这些被称为 实例变量或实例属性, 它们对每个对象都是唯一的。
访问类的变量 实例属性
你可以通过使用点运算符(.)来访问一个类的属性和方法。例如,如果你想访问类myClass的属性x,你可以使用表达式myClass.x。如果你想调用类myClass的方法myMethod,你可以使用表达式myClass.myMethod()。
让我们为这个演示在我们的类中定义一些实例属性。
访问实例属性的语法
object = class_name(parameter1 = value_!, parameter2 = value_2, .., parameter_N = value_N)
object.parameter_1
object.parameter_2
.
.
object.parameter_N
代码
class Rectangle:
def __init__(self, length, width):
self.side_1 = length
self.side_2 = width
def area(self):
a = self.side_1*self.side_2
print("Area of the rectangle is: ", a)
rect = Rectangle(45.0, 56.98)
# printing the type of object
print(type(rect))
# accessing the values through object
print(rect.side_1)
print(rect.side_2)
输出
<class '__main__.Rectangle'>
45.0
56.98
所以,通过这种方式,我们可以访问它们。
访问类方法和其他实例属性
语法
class_name.variable_1
class_name.variable_2
.
.
class_name.variable_N
这个概念的简单变化是,我们所说的类属性是指类变量。这些变量只能用class_name 来访问。它们也被称为静态变量。内存不会对其进行清理,而是在每次成功运行代码后。它更新 新的数值,保留以前的数值。
例如,我们使用同一个学生班级并为其创建班级属性。
class student:
school = "Universal Public School"
batch = "2020-2021"
def __init__(self, name, std, roll_no):
self.nm = name
self.std = std
self.rl_no = roll_no
def getData(self):
print("Student name: ", self.nm)
print("Standard: ", self.std)
print("Roll number: ", self.rl_no)
def setData(self, name, std, roll_no):
self.nm = name
self.std = std
self.rl_no = roll_no
print("The school name is: ", student.school)
print("The batch year is: ", student.batch, "\n")
stud = student("Om", "4th", 9)
stud.getData()
print() # to print a new line in between
stud_1 = student("Hari", "5th", 14)
stud_1.getData()
输出
The school name is: Universal Public School
The batch year is: 2020-2021
Student name: Om
Standard: 4th
Roll number: 9
Student name: Hari
Standard: 5th
Roll number: 14
解释
- 这个学生类在开始时只包含两个新的东西。它包含学校和批次变量。
- 接下来的代码与第一个代码相同。其他的只是
getter() and setter()方法。 - 现在在第21和第22行代码中,我们正在调用这些变量。
- 注意区别:
- 我们不是创建一个对象,而是只用类名来调用它们 。
- 然后使用点运算符 ". " 来进行访问。
- 另外,请注意,我们可以在运行时使用等价的"="运算符来改变它们的值,同时也可以调用它们。
例子(在运行时)
class Employee:
# class attributes
COMPANY = ""
BRANCH = ""
def __init__(self, name, designation, ID):
self.name = name
self.designation = designation
self.id = ID
def getData(self):
print(self.name)
print(self.designation)
print(self.id)
print()
def setData(self, name, desig, ID):
self.name = name
self.designation = desig
self.id = ID
def main():
Employee.COMPANY = input("Enter the company name: ")
Employee.BRANCH = input("Enter the branch: ")
print()
print("...The employee details are...")
print("The company name is: ", Employee.COMPANY)
print("The company branch is at: ", Employee.BRANCH)
emp_1 = Employee("Varun", "Tirpathi", 1001)
emp_2 = Employee("Dhanush", "Reddy", 1002)
emp_3 = Employee("Neha", "Singh", 1003)
emp_1.getData()
emp_2.getData()
emp_3.getData()
main()
输出
Enter the company name: Microsoft
Enter the branch: Bengaluru
...The employee details are...
The company name is: Microsoft
The company branch is at: Bengaluru
Varun
Tirpathi
1001
Dhanush
Reddy
1002
Neha
Singh
1003
解释
- 这里我们有一个简单的雇员类。构造函数包含参数,如雇员的姓名、职务和ID。
- 接下来的方法是
getData() and setData().通过这个名字,我们可以了解到第一个方法是用来检索数据的,接下来是用来编辑数据的。 - 这个类有两个属性:
- 公司。
- 支部。
main(),该函数接受这两个类属性的输入。- 在最后六行中,我们有三个雇员类的对象。
- 然后为了检索数据,我们调用getData()方法。
结束语
所以,通过这种方式,我们可以说,类的属性也被称为类变量。我希望这对学习与Python中的OOP和类有关的新概念会有帮助和乐趣。更多的新主题将陆续出现。在那之前,请继续学习和进步。