python:创建类的实例

class Student(object):
  def __init__(self,name="",school="",grade=""):
    if not name:
        name=raw_input("What is the student‘s name?")
    if not school:
        school=raw_input("What is the student‘s school?")
    if not grade:
        grade=self.get_grade()
    self.name=name
    self.school=school
    self.grade=grade
    self.print_student()
  def get_grade(self):
    while True:
      grade=raw_input("What is the student‘s grade?[k,1-5]")
      if grade.lower() not in [‘k‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘]:
        print "I‘m sorry ,but {} isn‘t valid.".format(grade)
      else:
        return grade
  def print_student(self):
    print "Name: {}".format(self.name)
    print "School: {}".format(self.school)
    print "Grade: {}".format(self.grade)

def main():
  student1=Student()
  student2=Student(name="harry",grade="2",school="Minnieville")

if __name__=="__main__":
  main()

注意:1.创建的类中必须有参数Object
2."!"变成中文符号‘hello world\xa3\xa1‘可能出现错误
3.类中的方法传入值必须有self,在方法体中用self引用属性
4.调用该类时,不用复写object
5.__name__、__main__和__init__均是双下划线
6.python自带的初始化方法__init__(),在调用该类时自动调用该方法

时间: 2025-01-08 13:12:42

python:创建类的实例的相关文章

C# 利用反射根据类名创建类的实例对象

“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 1.假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型): Assembly assembly = Assembly.LoadFile("程序集路径,不能是相对路径"); // 加载程序集(EXE 或 DLL) object obj = assembly.CreateInstance("类的完全限定名(即包括命名空间)");

[译文]运行时利用反射动态地创建类的实例

介绍 通常我们使用类的名称创建一个实例/类的对象,例如,如果我有一个名为 User 的类,我们会去这样创建这个类. 1 User UR = new User(); 2 UR.ID = 1; 3 UR.Name = "Kailash"; 但如果有人你在让你在应用程序运行时或者通过字符串作为类名创建一个类的实例,你将如何做? 别担心,微软.Net 框架提供了一种解决方案. 在System.Reflection名称空间的 Assembly类和System名字空间的和Activator 类可以

C#根据类名称创建类的实例

转:http://blog.csdn.net/ise_keven1/article/details/2070049 方案一: using   System;       using   System.Reflection; Type   type   =   Type.GetType("abc");     Activator.CreateInstance(type); 方案二: using   System;       using   System.Reflection;    

C++动态创建类的实例

写在前面:首先声明,C++实际上是不可以动态创建类的实例的. 下面简单做一个解释,所谓动态创建类的实例是指在程序运行过程中创建并使用一个“未知”的类.而“未知”是指在程序编译时并不知道有哪些类是需要动态创建的.对于C++这门语言来说,编译时不知道的类是不可以在运行时使用的.所以我说C++是不可以的. 不过C++可以做到另一件事情,基本可以满足大多数类似的需求. 我描述为通过类名称创建类的实例. 进入正题. 首先描述一下需求: 编写一个程序实现在程序运行过程中通过类名称(即字符串变量)创建该类的实

python之---类和实例

类和实例: 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: >>> class Student(object): ... pass ... >>> class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(obj

Python基础-类和实例

下文转载自廖雪峰大神的官方教程,非常感谢! 类和实例 面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object

Python - 04182016 - 类与实例间属性的理解

Python是个很灵活的语言,光看它的类和实例间属性的访问机制就可以看出这一点,不过这一点还真的不好理解,做了些测试之后我的理解是这样的: 实例在访问类属性时,先检索自己的names, 如果有的话就直接取出,没有的话就去来的names里面找,找不到就是error啦 class Pclass(object): """docstring for Pclass""" num = 10 def __init__(self): super(Pclass,

C# Activator.CreateInstance 动态创建类的实例(二)

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Kernel.Interface { public interface IObjcet { void Put(); void Put(string plus); } } using System; using System.Collections.

九、Python 一些类、实例、内建函数笔记

dir(Myclass)   用来展示一些类的内部属性还有方法,今天IBM面试问到了,居然忘记了,your sister. print Myclass.__dict__也可以 del c1清除一个引用 跟踪实例 class InstCt(object): count =0 def __init__(self): InstCt.count +=1 def __del__(self): InstCt.coutn -=1 def howMany(self): return InstCt.count [