class people :
def __init__(self,name):
self.name = name
@property
def name(self):
return self.name
@name.setter
def name(self,x):
if type(x) is not str :
raise Exception("名字必须是字符串类型")
self.__name = x
@name.deleter
def name(self):
print("不允许删除")
p1 = people("egon")
del p1.name
python中一切皆对象:
#数据类型就是类,类也可以说是新的数据类型
#list.append 其中append就是一种绑定方法
#好处:取值方便,省空间
#property
#python的内置方法,一般直接加在函数的正上方,用作装饰器,将类中的功能属性伪装成数据属性
#调用的时候直接跟数据属性的使用方法一样,即self.name
#将函数藏起来,被装饰函数不需要传参
class people:
def __init__(self,name):
self.__name = name
@property #查询
def name (self):
return self.__name
@name.setter #修改行为
def name(self,x):
if type (x) is not str:
raise Exception("名字必须是字符串")
self.__name = x
@name.deleter
def name(self):
print("不允许删除")
p1 = people('egon')
p1.name ="egon"
print(p1.name)
```python
# 了解性知识点:
# 将装饰器函数删掉,名字改好,name= property(get_name,set_name,del_name)括号内为装饰名
# class people :
# def __init__(self,name,weight,height):
# self.name = name
# self.weight = weight
# self.height = height
#
# @property
# def bmi(self):
# return self.weight/(self.height**2)
#
# p1 =people("egon",70,1.83)
#
# print(p1.bmi)
class people :
def __init__(self,name):
self.name = name
@property
def name(self):
return self.name
@name.setter
def name(self,x):
if type(x) is not str :
raise Exception("名字必须是字符串类型")
self.__name = x
@name.deleter
def name(self):
print("不允许删除")
p1 = people("egon")
del p1.name
python中一切皆对象:
数据类型就是类,类也可以说是新的数据类型
list.append 其中append就是一种绑定方法
好处:取值方便,省空间
property
python的内置方法,一般直接加在函数的正上方,用作装饰器,将类中的功能属性伪装成数据属性
调用的时候直接跟数据属性的使用方法一样,即self.name
将函数藏起来,被装饰函数不需要传参
class people:
def init(self,name):
self.__name = name
@property #查询
def name (self):
return self.__name
@name.setter #修改行为
def name(self,x):
if type (x) is not str:
raise Exception("名字必须是字符串")
self.__name = x
@name.deleter
def name(self):
print("不允许删除")
p1 = people(‘egon’)
p1.name =“egon”
print(p1.name)
了解性知识点:
将装饰器函数删掉,名字改好,name= property(get_name,set_name,del_name)括号内为装饰名
绑定方法
绑定给谁就有谁来调用,谁来调用就会将自己当做第一个参数传入
非绑定方法
特点 :不与类和对象绑定,意味着谁都可以来调用,但无论谁来调用就是一个普通函数,没有自动传参的效果
但凡在类中定义一个函数,默认就是绑定给对象的,应该有对象来调用,调用时会将对象当做第一个参数自动传入
类可以调,但类调用就是一个普通函数,不会自动传参
类中定义一个函数,被classmethod装饰过,就绑定给类,应该由类来调用,调用时会将类当做第一个参数自动传入,
对象可以调,但还是一个绑定方法,会将类自动传入
类中定义的函数,被staticmethod装饰过,就成为一个非绑定的方法即一个普通函数,谁都可以调用,
但无论谁来调都是一个一个普通函数,没有自动传参的效果
继承是创建新类的一种方式
新建的类称之为子类
被继承的类称之为父类,基类,超类
类是用解决对象之间冗余问题
而继承则是来解决类与类之间的冗余问题
继承的特点:子类可以遗传父类的属性
在python中支持多继承
继承的父类越多,查找起来越乱
先抽象在继承
继承背景下的属性查找
先自己,再类再父类再父父类
了解内容:
但凡是继承了objet类的子类以及该子类的子子孙孙类都是新式类
反之就是经典类
在Python2中有新式类和经典类之分,不继承就是经典类
在python3中全是新式类,不继承会被默认继承objet
uuid.uuid1
会自动生成一个编号
#python中多继承