在python中为学生创建未定义的学生

时间:2018-02-14 17:23:13

标签: python class

python新手。在python中运行此脚本时,我收到undefined name: student错误。以下是我的代码。我尝试解决这个问题,但失败了。

class Student:
    Std1 = Student()
    #std2 = Student()

    Std1.fname='Sushant'
    Std1.lname='Shinde'

    print(Std1.fname)

5 个答案:

答案 0 :(得分:3)

试试这个:

class Student:
    def __init__(self):
        pass

Std1 = Student()
#std2 = Student()

Std1.fname='Sushant'
Std1.lname='Shinde'

print(Std1.fname)

答案 1 :(得分:1)

在我回答之前,我建议您寻找Python OOP教程。 This one(不是我的网站)看起来没问题。

您正在Student范围内尝试所有操作。 你应该尝试这样的事情:

class Student:
    def __init__(self, fname, lname):  # self is a reference to the newly created object
        self.fname = fname
        self.lname = lname

Std1 = Student('Sushant', 'Shinde')  # Create an instance object, with specific fname and lname
print(Std1.fname)  # Sushant
Std1.fname = 'Sushant2'
print(Std1.fname)  # Sushant2

Std2 = Student('Another', 'Student')
print(Std2.fname)  # Another
print(Std2.lname)  # Student

答案 2 :(得分:0)

Class基本上是对象的蓝图,你必须在为它创建对象之前为学生定义一个类。

class Student:
    def __init__(self, fname, lname):
        self.fname = fname;
        self.lname = lname;


Std1 = Student('Sushant', 'Shinde')
print(Std1.fname)

__init__(self)是充当构造函数并保存类的属性或成员变量的函数。以上是使用课堂的正确方法。如需进一步参考,您可以阅读关于类和对象here

答案 3 :(得分:0)

您似乎正在尝试使用类属性。

class Student:
    fname = 'a'
    lname = 'b'

print(Student.fname)
a = Student()
print(a.fname)

答案 4 :(得分:0)

下面的代码是一个类定义,您可以定义类Student的属性和行为。

class Student:
    def __init__(self,first,last):
       self.first_name = first;
       self.last_name = last;

    def show_full_name(self):
       print(self.first_name+" "+self.last_name);

函数__init__是在创建Student对象后立即调用的函数,例如..

student_A = Student("Ali", "Miles");
student_B = Student("Sarah", "Parker");

在此之后,您可以使用属性first_namelast_name。您还可以使用定义的方法show_full_name来显示对象的全名。

student_A.show_full_name();
student_B.show_full_name();

print(student_A.first_name);
print(student_B.first_name);

输出以上4行代码:

Ali Miles
Sarah Parker
Ali
Sarah