我正在创建一个python软件包,该软件包将由大约一个小型最终用户组使用。 20个人甚至由3人组成的开发人员小组也将对此软件包做出贡献。
我的程序包包含多个子程序包。我不希望最终用户从子程序包访问任何实用程序功能。如何命名这些子包中的子包和模块?
我的目的是与最终用户交流,这些子软件包不是为他们设计的。但是,这些功能可能是其他子包中的实用程序功能所必需的,因此并不是真正的“私有”。
答案 0 :(得分:-2)
类中的方法应使用前缀__(双下划线)声明。当方法以__为前缀时,它们被视为私有。请检查以下代码,
基类:
import React, { Component, createContext } from 'react';
import { API } from '../Services'
export const ProjectContext = createContext();
export class ProjectContextProvider extends Component {
constructor(props) {
super(props);
this.refresh = this.refresh.bind(this);
this.state = {
project: null,
refreshProject: this.refresh
}
}
// This is what I have
refresh(projectID) {
API.getProject(projectID).then(project => {
this.setState({ project });
});
}
// This is what I want
// refresh() {
// API.getProject(this.projectID).then(project => {
// this.setState({ project });
// });
// }
render() {
return (
<ProjectContext.Provider value={{...this.state}}>
{this.props.children}
</ProjectContext.Provider>
);
}
}
在此类中,以下对象无法访问__fun方法, obj1 = Base() obj1 .__ fun()
行obj1 .__ fun()将引发AttributeError。