我试图了解实例属性和类属性以及属性之间的区别。我有下面的代码,我试图区分这些因素
class Student:
firstname = ""
lastname = ""
ucid = ""
department = ""
nationality = ""
courses = {}
def __init__(self, fname, lname, ucid, dept, n):
self.firstname = fname
self.lastname = lname
self.ucid = ucid
self.department = dept
self.nationality = n
self.courses = {}
def setName(self, fname, lname):
self.firstname = fname
self.lastname = lname
def setDepartment(self, d):
self.department = d
def setUcid(self, u):
self.ucid = u
def setNationality(self, n):
self.nationality = n
def addCourse(self, coursename, gpa):
self.courses[coursename] = gpa
def printAll(self):
print("The name of the student is ", self.firstname, self.lastname)
print("nationality and UCID: ", self.nationality, self.ucid)
print("Department: ", self.department)
print("Result: ")
for key in self.courses.keys():
print(key, self.courses[key])
print("--------------------\n")
s1=Student("Beth","Bean","30303","Computer Science","International")
s1.addCourse("SCIENCE",3.75)
s1.printAll()
s2=Student("Mac","Miller","30303","Envr Science","American")
s2.addCourse("MATH",4.00)
s2.printAll()
据我所知,这些属性是:firstname,lastname,ucid,department,nationality,courses
,但我不知道instance attributes
和class attributes
是什么
应该有两个属性,}&
class attribute
,instance attribute
。或{none-instance attribute
为了方便instance attribute
__init__
时才被激活李>self.xxx
李>self
作为其第一个参数的方法(通常情况下),这些函数是实例方法,只有在初始化该类后才能访问李>class attribute
non-instance attribute
或static attribute
,不管你怎么称呼它__init__
,甚至在__new__
中李>Class
和instance
调用李>您可能还应该知道
class method
,它与类一起保持激活状态,但区别在于class method
不能由实例调用,只能由类调用。这里的例子结论
实例和类都可以调用“类属性”
“实例属性”只能由实例调用
相关问题 更多 >
编程相关推荐