先创建一个类:
class Person:
name = None
age = None
gender = None #定义类的基本信息
def print_obj(self):
print("Person") #用函数输出定义的类
print("zhangsan------------------------------------------------")
定义一个"zhangsan"的个体:
zhangsan = Person() #给定义的累创建一个对象为"zhangsan"
print(zhangsan.name)
print(zhangsan.age)
print(zhangsan.gender) #打印"zhangsan"的基本信息
zhangsan.print_obj() #并打印该个体所属的类
#对"zhangsan"的数据进行修改:
zhangsan.name = "zhangsan"
zhangsan.age = 18
zhangsan.gender = "男"
print(zhangsan.name)
print(zhangsan.age)
print(zhangsan.gender)
定义一个个体"lisi":
print("lisi---------------------------------------------------")
然后定义一个个体"lisi",和"zhangsan"的定义一样,但不修改数据,比较他们的区别
lisi = Person()
print(lisi.name)
print(lisi.age)
print(lisi.gender)
lisi.print_obj()
执行结果为:
总结:
-
在个体未改变数据时,都执行的是所定义的类里边的数据
-
对"zhangsan"的数据进行修改,而"lisi"的数据并未发生改变,说明他们是同一类中的不同个体
实例化一个对象的时候,先新建对象,然后初始化操作
def __ new __(cls, *more): Create and return a new object. (创建并返回新的对象)
def __ init __(self): Initialize self. (对本身数据的初始化)
1. 对类本身初始化
class Person:
def __init__(self):
print("Initialize")
# Person() #初始化类
2. 输出个体所定义的数据
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
print("Initialize")
def __str__(self):
return self.name + "-" + str(self.age) + "-" + self.gender
zhangsan = Person("zhangsan", 18, "男")
lisi = Person("lisi", 20, "男")
print("print-------------------------------------")
#可以直接print对象所定义的数据
print(zhangsan)
print(lisi)
print("str---------------------------------------")
#也可以将定义数据的个体转换成str,然后调用定义的"str"方法
data = str(zhangsan)
data2 = str(lisi)
print(data)
print(data2)
输出结果为:
3. 返回所定义的属性
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gendeer = gender
def __getattribute__(self, item):
return "item:name"
zhangsan = Person("zhangsan", 18, "男")
lisi = Person("lisi", 20, "男")
print(lisi.name)
输出结果为: item:name
4.修改类以及个体的数据
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gendeer = gender
def __setattr__(self, key, value):
setattr(Person, key, value)
zhangsan = Person("zhangsan", 18, "男")
lisi = Person("lisi", 20, "男")
Person.name = "zhangsan123" #修改类的name
print(Person.name)
lisi.age = 18 #修改"lisi"的 age
print(lisi.age)
执行结果为:
定义: 根据传入对象的不同展示不同的参数
class Animals(object): #定义一个类及所要执行的方法
def __init__(self, name):
self.name = name
def run(self):
print(f"{self.name} is running")
#下边定义多个类引用上边的类所定义的参数
class Lion(Animals):
pass
class Tiger(Animals):
pass
class Elephant(Animals):
pass
def play(animals): #定义一个play的参数
animals.run()
#给定义的多个类传入不同的对象
lion = Lion("Lion")
tiger = Tiger("Tiger")
elephant = Elephant("Elephant")
#引用play参数去执行所传入对象中的方法
play(lion)
play(tiger)
play(elephant)
执行结果为: