python面向对象的绑定方法、隐藏属性
时间:2021-07-13
本文章向大家介绍python面向对象的绑定方法、隐藏属性,主要包括python面向对象的绑定方法、隐藏属性使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
绑定方法
绑定方法分为两种:
1.绑定给对象的
2.绑定给类的
绑定给对象的:
class Student():
country = 'CHINA'
def __init__(self, name, age):
self.name = name
self.age = age
def tell_info(self):
print("%s-%s" % (self.name, self.age))
obj = Student('egon', 30)
obj.tell_info()
绑定给类的:
setting.py
IP = '192.168.1.101'
PORT = 3306
import setting
class Mysql():
country = 'CHINA'
def __init__(self, ip, port):
self.ip = ip
self.port = port
def tell_info(self):
print("%s-%s" % (self.ip, self.port))
# 类方法是绑定给类的,类来调用, 把类名当做第一个参数传递
@classmethod
def from_config(cls):
obj = cls(settings.IP, settings.PORT)
return obj
obj=Mysql('127.0.0.1',80)
obj.tell_info()
obj1 = obj.from_config()
print(obj1.country)
Mysql.from_config() # Mysql.from_config(Mysql)
非绑定方法
非绑定方法:不绑定给对象,也不绑定给类
#随机产生一个字符串
import uuid
print(uuid.uuid4())
调用方法参数该怎么传就怎么传
class Mysql():
def __init__(self, ip, port):
self.ip = ip
self.port = port
@staticmethod # 静态方法
def create_id(x, y, z):
import uuid
print(uuid.uuid4())
obj = Mysql('127.0.0.1',3306)
obj.create_id(1,2,3)
Mysql.create_id()
def func():
print(111)
func(1,2,3)
隐藏属性
类定义阶段,只是语法上得变形
该隐藏对外不对内, 如果想访问类中隐藏属性,在类中开放对外访问的接口,可以更好的对外部做限制
变形操作只在类定义阶段, 之后的所有属性或者方法,都不会变形了
————下划线变量就是隐藏属性
class People():
__country = 'CHINA' # _People__country
def __init__(self, name, age):
self.__name = name
self.age = age
def __func(self): # _People__func
print("func")
def test(self):
return self.__country # self._People__country
def get_name(self):
return "名字:%s" % self.__name
def get_country(self):
return "国家:%s" % self.__country
def set_country(self, v):
if type(v) is not str:
print("country必须是str类型")
return
self.__country = v
def del_country(self):
print("不删除")
obj = People('ly', 18)
print(obj.get_country())
print(obj.get_country())
print(obj.name)
print(obj.get_name())
ps:Python3 中统一了类与类型的概念
原文地址:https://www.cnblogs.com/zty78/p/15006887.html
- C#全角和半角转换
- 浅谈Scala在大数据处理方面的优势
- 利用mybatis-generator自动生成代码
- 微信年终放大招!小程序再次升级,这个功能超想要!
- WordPress 中禁止文章自动保存和修订版本的方法
- 第一届机器人学习大会总结
- Hadoop: MapReduce2的几个基本示例
- 使用 nRoute 框架来实现基于 Silverlight 的桌面应用
- oracle:如何用sql生成日历
- 极品双拼“马仔”mazai.com易主终端
- Hadoop:pig 安装及入门示例
- 区块链时代即将到来 它将如何改变我们的工作和生活
- 架设ftp反向代理服务器
- CentOS 7 上面安装PowerShell
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一次完整的JVM堆外内存泄漏故障排查记录
- Python 爬虫进阶必备 | 某视频数据分析平台加密参数分析(终于我还是手把手扣了代码)
- Python 爬虫进阶必备 | 某视频平台 sign 加密参数分析
- 进击吧!Pythonista(3/100)
- begin backup导致的故障恢复全过程
- 通过历史控制文件恢复Oracle数据库,只需这10步
- python应用(2):写个python程序给自己用
- 基于Prometheus+Grafana监控SQL Server数据库
- 手把手教你用R语言读取CSV文件
- 6个案例手把手教你用Python和OpenCV进行图像处理
- Android 10(Q)/11(R) 分区存储适配
- Usual*** CMS 8.0代码审计
- 由一条like语句引发的SQL注入新玩法
- 《黑神话:悟空》B站弹幕、知乎回答分析
- 12岁小读者使用Python暴力破解Wi-Fi密码