python - 为什么更改类变量被认为是一种不好的做法?
问题描述
如您所见,我正在尝试创建一个类,以存储员工的传记数据并将它们存储在字典中。
我想问一下更改类变量是否是一种不好的做法。如果是,请解释为什么会这样。什么是做我正在做的事情的完美方式?
# Defining a class for storing the information related to the instructors at bcoder company
class Employee:
company_records = {}
Employee_count = 0
def __init__(self, fname, lname, email_id, contact, gender):
self.fname = fname
self.lname = lname
self.email_id = email_id
self.contact = contact
self.gender = gender
self.add_records()
# Defining a function for returning the full name of our employee
def fullname(self):
return("{} {}".format(self.fname, self.lname))
def add_records(self):
Employee.Employee_count += 1
Employee.company_records[Employee.Employee_count] = {
"Name": self.fullname(),
"Email_id": self.email_id,
"Contact": self.contact,
"Gender": self.gender
}
emp_1 = Employee("Vaibhav", "Yadav", "vaibhavy1912@gmail.com", 9432098712, "Male")
print(emp_1.fullname())
print(Employee.company_records)
emp_2 = Employee("vaibhav", "Gupta", "hg1123@gmail.com", 9323118976, "male")
print(Employee.company_records)
emp_2 = Employee("Yogesh", "Yadav", "yogesh1123@gmail.com", 9323118976, "male")
print(Employee.company_records)
做上述事情的优雅方式是什么?
解决方案
推荐阅读
- c# - 为什么创建的 .exe 无法运行/打开?时间:2019-04-01 标签:c#winforms应用
- nlp - 使用 Spacy en_core_web_lg 模型的 POS 标记不一致
- java - 如何解决“连接到地名服务器 http://ws.geonames.org 的问题”?
- java - 使用 xslt 替换 xml 节点
- spring - 当 bean 范围更改为“原型”时,Setter 方法没有任何效果
- reactjs - 如何在 ReactJS 中通过 node-sass 包含 Bourbon
- mongodb - 文本索引的术语列表限制
- c - 尝试按字母顺序存储链表
- azure-sql-database - 删除 Azure SQL 表中的大数据将增加数据库数据存储
- xlwings - 如何在不更改 %PATH% 环境变量的情况下在 xlwings Excel 中设置 python 路径?