基本介绍信息展示在注释中,欢迎大家讨论
1)_init_函数(方法)
1.1.init函数(方法)支持带参数的类的初始化 ,也可为声明该类的属性
1.2.init函数(方法)的第一个参数必须是 self(self为习惯用法,也可以用别的名字),后续参数则可 以自由指定,和定义函数没有任何区别。
#encoding=utf-8
# Created by double lin at 2018/8/22
class person():
# def __init__(self,name,gender,birth,**kw):
def __init__(self, name, gender, birth, **kwargs):
self.name=name
self.gender=gender
self.birth=birth
# for k,w in kw.iteritems():
# setattr(self,k,w)
for k,w in kwargs.items():
# setattr(self, k, w)
print (k,w)
def sayhi(self):
print ('my name is',self.name)
print (self.gender)
print (self.birth)
# 多出来的参数信息有两种方式进行展示-
# 1.key-value的形式在实例化对象时,在需要添加的参数列表中指出
# 2.在对象执行函数初始化的时候
# 正常的对类进行实例化对象
# 初始化的时候一定要将所有必须的参数指定完毕
xiaoming = person('Xiao Ming', 'Male', '1991-1-1')#
# __class__中的必须参数不可删除
print ("*********************************")
xiaoming.__class__('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010').__init__('Xiao Ming', 'Male', '1991-1-1')
# 实例化并且在对象使用__class__的时候,同时在clss和init中进行参数传递
print ("*********************************")
xiaoming.__class__('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010').__init__('Xiao Ming', 'Male', '1991-1-1')
# retult:
# job student
# tel 18089355
# stdid 15010
#
# 只使用__class__不使用__init__
print ("*********************************")
xiaoming.__class__('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355',stdid='15010')
# result:
# job student
# tel 18089355
# stdid 15010
# 实例化对象后,单独执行对象下的__init__方法,传递附加的多的参数信息
print ("*********************************")
print ('only __init__')
xiaoming.__init__('Xiao Ming', 'Male', '1991-1-1',job='student',tel='18089355')
# result:
# job student
# tel 18089355
# 初始化实例对象的时候,必须参数必须存在
print ("*********************************")
print ('only __init__')
# xiaoming.__init__(job='student',tel='18089355')
# result:
# Traceback (most recent call last):
#
# xiaoming.__init__(job='student',tel='18089355')
# TypeError: __init__() missing 3 required positional arguments: 'name', 'gender', and 'birth'
print ("*********************************")
xiaoming.sayhi()
self指的是传入的实例(不同实例类的属性值不同以及方法执行结果不同)即xiaoming和xiaohong,类的属性即为name,gender,birth及其他kw,类的方法即为sayhi。
谢谢!!共同监督和分享!