注:所有代码部分均为连续的,“结果”为在jupyter分步运行结果
代码部分
class human: #类 定义
#类的属性
name = 'someone'
age = 100
#类的方法
def my_name(self):
print('my name is',self.name)
def my_age(self):
print('my age is',self.age)
def eat(self):
print('eat')
def think(self,a,b):
print(a+b)
person1 = human() #创建一个person1的对象
person1.name
结果:
'someone'
person1.name = 'zhangsan' #修改
print(person1.name)
结果:
zhangsan
person1.eat()
结果
eat
person1.my_age()
结果
my age is 100
person1.think(10,23)
结果
33
class human: #类 定义
def __init__(self,name,age):#初始化,创建对象时会执行
self.name = name #由类的外部传进来
self.age = age #由类的外部传进来
#类的方法
def my_name(self):
print('my name is',self.name)
def my_age(self):
print('my age is',self.age)
def eat(self):
print('eat')
def think(self,a,b):
print(a+b)
person2 = human()#没有传入参数,所以报错
结果
TypeError Traceback (most recent call last)
<ipython-input-10-f36437239922> in <module>()
----> 1 person2 = human()
TypeError: init() missing 2 required positional arguments: 'name' and 'age'
person2 = human('xiaoming',10)#正确创建方法
person2.name
结果
'xiaoming'
person2.my_age()
结果
my age is 10
class human: #类
def __init__(self,name='someone',age=10):#创建对象时会执行
self.name = name
self.age = age
#类的方法
def my_name(self):
print('my name is',self.name)
def my_age(self):
print('my age is',self.age)
def eat(self):
print('eat')
def think(self,a,b):
print(a+b)
person3 = human()#因为类定义时候默认定义了初始化参数的值,所以正确创建了对象
person3.my_name()
结果
my name is someone
person3 = human(name='xiaohong',age=20) #正确创建对象
person3.my_name()
结果
my name is xiaohong //因为创建对象时候赋值了,所以name()改变了
网友评论