Python学习入门笔记(十二)类——基础

注:所有代码部分均为连续的,“结果”为在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)
in ()
----> 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()改变了

你可能感兴趣的:(Python学习入门笔记(十二)类——基础)