python 19 面向对象以及类相关

# python 面向对象
# /usr/sbin/py/python
# -*-coding:utf8-*-
# python 中类和对象的定义
#    类:把一类事物的相同特征和动作整合到一起就是类,类是一个抽象的概念
#    对象:就是基于类而创建的一个具体的事物,把该事物的特征和动作整合到一起 具象
# python 不同于 java 和 c# 的应用 独特点可以通过函数来进行面向对象设计
def person(name, age, gender):
    def init(name, age, gender):
        return {
            "name": name,
            "age": age,
            "gender": gender,
            "run": fun_run
        }

    def fun_run(person):
        print("%s 在奔跑" % person["name"])

    return init(name, age, gender)

p1 = person("jake", 10, "mail")
print(p1)
p1["run"](p1)

# 面向对象编程 使用class 语法去实现面向对象的设计  面向对象设计其实并不会区分语语言,c编写的linux kernal同样是面向对象设计

# 声明一个类
class people:  # 类名
    '这是一个测试类'
    name = "jake"
    def run(self):
        print("%s is running" %self.name)
    pass # 类体

p1 = people() # 类的调用和接口调用方式一致,不同的是类是在实例化 且实例化会返回一个结果
print(p1)
print(p1.name)

# python2 中 class People:   与 class People(object): 是有区别的 前者是经典类,后者为新式类 ,在python3中一样
p1.run()
print(dir(people)) # 返回类中所包含的属性列表,包含默认属性
print(people.__dict__["name"])
print(people.__name__) # 类名
print(people.__doc__)  # 注释文档
print(people.__base__) # 继承的类
print(people.__bases__) # 以元组的形式显示
print(people.__module__) # 显示模块

# 对象实例化
class school :
    age = 10
    def __init__(self,name,address):
        print("init 函数执行")
        self.name = name
        self.address =address

    def teach(self):
        print("%s招生了" %self.name)


school1 =school("北大","北京")
school1.teach()
print(school1.__dict__) # 实例只有数据属性,而且是通过init方法赋予的 不存在函数属性
print(school.__dict__)
print(school.age)

print(school1.age)
school.country = "china"  # 增加类属性
print(school1.country)  # ? 为啥可以访问到?
# python 中有一个寻址的过程, 先在实例中去找,没有就会再到类中去找 相关的属性

del school.age # 删除属性  删除的属性再被调用则会报错

# 同理增加函数属性也是如此
def eat(self,food):
    print("%s正在吃%s" %(self.name,food))
school.eats = eat
school1.eats('apple')

# 值得注意的是 类属性和全局变量的使用,其实在python中类可以理解为一类特殊的函数


AI实战-泰坦尼克号生还可能性数据集分析预测实例(含19个源代码+59.76 KB完整的数据集) 代码手工整理,无语法错误,可运行。 包括:19个代码,共121.84 KB;数据大小:1个文件共59.76 KB。 使用到的模块: pandas numpy seaborn matplotlib.pyplot warnings sklearn.model_selection.train_test_split sklearn.ensemble.RandomForestClassifier sklearn.metrics.accuracy_score sklearn.metrics.confusion_matrix os scipy.stats sklearn.compose.ColumnTransformer sklearn.impute.SimpleImputer sklearn.preprocessing.OneHotEncoder sklearn.impute.KNNImputer sklearn.preprocessing.StandardScaler sklearn.ensemble.RandomForestRegressor sklearn.ensemble.GradientBoostingRegressor sklearn.metrics.classification_report sklearn.metrics.roc_auc_score sklearn.model_selection.cross_val_score sklearn.pipeline.Pipeline sklearn.model_selection.RandomizedSearchCV sklearn.ensemble.GradientBoostingClassifier sklearn.linear_model.LogisticRegression sklearn.naive_bayes.GaussianNB sklearn.metrics.roc_curve xgboost.XGBClassifier sklearn.ensemble.AdaBoostClassifier sklearn.tree.DecisionTreeClassifier sklearn.preprocessing.LabelEncoder imblearn.over_sampling.SMOTE sklearn.svm.SVC sklearn.model_selection.GridSearchCV math sklearn.neighbors.KNeighborsClassifier sklearn.metrics.precision_score sklearn.metrics.recall_score sklearn.metrics.f1_score sklearn.metrics.ConfusionMatrixDisplay torch dataclasses.dataclass typing.List typing.Tuple typing.FrozenSet typing.Set typing.Dict fcapy.lattice.ConceptLattice fcapy.lattice.formal_concept.FormalConcept fcapy.poset.POSet fcapy.visualizer.line_layouts.calc_levels sparselinear.SparseLinear sklearn.neural_network.MLPClassifier fcapy.context.FormalContext fcapy.visualizer.LineVizNx networkx sklearn.preprocessing.MinMaxScaler sklearn.ensemble.BaggingClassifier torch.nn torch.optim sklearn.datasets.load_iris
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值